Hallo
Ich verzweifle gerade daran per Timer und Interrupt eine LED zu
toggeln... eigentlich sollte das ja kein Problem darstellen aber der
macht das einfach nicht. Der springt einmal in die Interruptrutine und
macht die led an. aber dann bleibt die an...
•
1 | #include "msp430g2553.h"
|
2 |
|
3 | void main(void)
|
4 | {
|
5 | WDTCTL = WDTPW + WDTHOLD; // Stop WDT
|
6 | DCOCTL = CALDCO_1MHZ; // 1MHz
|
7 | TACTL = TASSEL_2 + MC_1 + ID_3+ TAIE; // SMCLK/8, upmode
|
8 | CCR0 = 10000; // 12.5 Hz
|
9 | P1OUT &= 0x00; // Shut down everything
|
10 | P1DIR &= 0x00;
|
11 | P1DIR |= BIT0; // P1.0 and P1.6 pins output the rest are input
|
12 | P1OUT=0x00;
|
13 |
|
14 |
|
15 | __bis_SR_register(LPM0_bits + GIE);
|
16 |
|
17 | }
|
18 |
|
19 | // Timer A0 interrupt service routine
|
20 | #pragma vector=TIMER0_A1_VECTOR
|
21 | __interrupt void Timer_A(void)
|
22 | {
|
23 | P1OUT ^= BIT0;// Toggle P1.0
|
24 |
|
25 |
|
26 | }
|
Ich weiß gerade einfach nicht weiter... MC_1 ist der upmode sprich der
sollte bis CCR0=(10000) zählen und dann kommt das Interrupt. Sprich xor
P1.0. Dann sollte er von selber wieder von 0 an hoch zählen bis der
nächste interrupt ausgelöst wird.
kann mir bitte einer nen Tip geben, was an meinem code falsch ist.