Hallo zusammen, Ich habe neulich angefangen mit den Timern zu exprimentiern. Folgender Code soll den 32bit Timer/Counter des LPC1115 aktivieren und bis zu einer gewisser Zahl hier (0x2000) hochzählen lassen und stoppen. Um zu schauen ob es funktioniert möchte ich den Inhalt des Counters als den Register (TC) lesen können, doch im Debug modus ist der Inhalt immer gleich 0. Kann jemand drüber schauen und sagen was ich da falsch mache?? Danke int main(void) { LPC_SYSCON->SYSAHBCLKCTRL |= (1<<9); //Clock(power) to the Timer LPC_TMR32B0->PR = 0x0; //When the Prescale Counter (PC = PR), clock //increments the TC and clears the PC. LPC_TMR32B0->MR0 = 0x2000; LPC_TMR32B0->CCR = 0x0; //Timer mode LPC_TMR32B0->TCR |= (1<<1); //Timer reset LPC_TMR32B0->TCR |= (1<<0); //Timer on LPC_TMR32B0->MCR |= (1<<2); //Stop Timer on match with MR0; LPC_TMR32B0->TCR &= ~(1<<0); while(1) { } return 0 ; }
Zuviele magische Zahlen. Es gibt sicher auch Definitionen für die ganzen Timer Flags in einem Header. Dann wäre vermutlich aufgefallen, dass Du hier
1 | LPC_TMR32B0->TCR &= ~(1<<0); |
den Timer aussschaltest. So zählt der nich hoch.
Danke. Das stimmt leider. Das war ein Versehen weil ich ein anderes
Code-Beispiel bei dem ein PWM programmiert wurde zum Teil übernommen
hatte.
int main(void) {
//Set up 16 bit timer for PWM operation
LPC_IOCON->PIO0_8 = (LPC_IOCON->PIO0_8 & ~(0x3FF)) | 0x2; // pin for
PWM use
LPC_SYSCON->SYSAHBCLKCTRL |= (1<<7); //enable clock signal to 16 bit
timer0
LPC_TMR16B0->PR = 0x0; //set prescaler max value, not used
here
LPC_TMR16B0->MCR = 0x10; //set for reset on counter match
LPC_TMR16B0->EMR |= 0x20; //set pin 27 to 1 on match
LPC_TMR16B0->CCR = 0; //set to timer mode
LPC_TMR16B0->PWMC = 0x1; //set channel zero to PWM mode
LPC_TMR16B0->MR1 = 0x32; //set value for period
LPC_TMR16B0->MR0 = 0xC; //set value for duty cycle
LPC_TMR16B0->TCR |= 0x3; //enable and reset counter
LPC_TMR16B0->TCR &= ~(0x2); //clear reset bit
while(1){ //infinite loop
}
return 0 ;
}
Aber theoretisch könnte man schon mit LPC_TMR32B0->TC den Inhalt von TC
auslesen, oder?? Das wäre auch mal eine Frage.
monem schrieb: > Aber theoretisch könnte man schon mit LPC_TMR32B0->TC den Inhalt von TC > auslesen, oder? Ja
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.