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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.