Hi everyone,
First, sorry for my english, it's not my maternal langage smiley-wink.
I try to configure the Timer2 of the atmega328 microcontroler in CTC mode.
For this, I defined the OCR2A register but, at the execution of the above code, I always get
the same values on my counter when I print it on the Serial port (in the loop statement). Normaly,
more the value of OCR2A is lower, more the value of my counter should be greater. Also, I tried many prescalers, same problem.
Here my code :
static volatile unsigned long timerr = 0; void setup() { Serial.begin(9600); //timer2 setup OCR2A = 255; // <-- if i change this value, the timerr values are always the same at the execution TCCR2A = 0; TCCR2B = 0; TCNT2 = 0; TCCR2A |= (1 << WGM21); // Configure timer 2 for CTC mode TIMSK2 |= (1 << OCIE2A); TCCR2B |= (1 << CS22) | (1 << CS21) | (1 << CS20); //1024 prescaler sei(); timerr=0; } void loop() { delay(4000); Serial.println(timerr); // <-- produce always the same values } ISR (TIMER2_COMPA_vect) { timerr += 1; }
Can you explain that ?
Thanks in advance.[/code]