Hallo zusammen, ich habe ein Problem mit dem Timer CCR0 - ich wollte TimerA0 ebenfalls als ganz normalen Zähler nehmen, jedoch zählt das Register viel zu lange hoch - es dauert ewig, bis da endlich mal der CCR0-Wert erreicht ist und ich verstehe nicht, woran das liegt. Der TimerA1 funktioniert. Es ist ein MSP430F2011. Bitte um Hilfe - was mache ich falsch? Habe den Wert für CCR0 jetzt schon total runtergescharubt, aber trotzdem blinkt die andere in der Zeit zich Male. #include "msp430x20x1.h" #include "stdint.h" #define LED1 0x01; #define LED2 0x02; volatile uint16_t zaehler1 = 0; volatile uint16_t zaehler2 = 0; void main (void ) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; P1SEL = 0x00; P1DIR |= 0x03; P1OUT &= ~0x03; TACTL = TASSEL_2 + ID_2 + MC_2; // SMCLOCK + Teiler 8 + Cont.-Mode TACCTL0 = CCIE; TACCR0 = 100; TACCTL1 = CCIE; TACCR1 = 100; _BIS_SR (GIE); while (1) {} } #pragma vector=TIMERA0_VECTOR // ISR nach CCR0 __interrupt void timer0 (void) { zaehler2 += 1; if (zaehler2 == 100) { zaehler2 = 0; P1OUT ^= LED2; TACCR0 += 50000; } } #pragma vector=TIMERA1_VECTOR // ISR nach CCR1 __interrupt void timer1 (void) { zaehler1 += 1; if (zaehler1 == 5000) { zaehler1 = 0; P1OUT ^= LED1; TACCR1 += 50000; } }
Esmacht auch garkeinen Unterschied, ob ich den Input-Divider verändere oder nicht, wie kann das sein?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.