LPC1115, wie spielt man mit dem Timer

Gast #4727489
Lesenswert?

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 ;
}
Gast #4727814
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren