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.