Hallo,
ich habe eine Frage zum Timer0 des Atmega328p.
1 | void TIMER_Init(void){
|
2 | // Timer 0 konfigurieren
|
3 | TCCR0A = (1<<WGM01); // CTC Modus
|
4 | TCCR0B |= (1<<CS00)|(1<<CS01); // Prescaler 64
|
5 | OCR0A = 250-1; // ((16000000/64)/1000) = 250
|
6 | TIMSK0 |= (1<<OCIE0A); // Compare Interrupt erlauben
|
7 | }
|
8 |
|
9 | ISR (TIMER0_COMPA_vect){
|
10 | ...
|
11 | }
|
Sobald der Zählwert 250 erreicht hat, wird der Interrupt ausgelöst. Wenn
ich jetzt zwischendurch TCCR0B=0x00 setze, hört der Timer auf zu zählen.
durch erneutes starten des Timers (TCCR0B |= (1<<CS00)|(1<<CS01) ) fängt
dieser wieder an zu arbeiten. Aber bei welchem Zählwert startet dieser?
Fängt der wieder bei 0 an zu zählen? Oder bei dem Wert, wo ich den Timer
gestoppt habe?
Johannes