Interrupt questions (newby)!!

Hi everybody!
First of all i want to admit that i don’t have any experience in the micro controller area (i 'm a software developer mainly working in the .NET field).
Of course i have a fundamental understanding of how micro controllers work, but i need to deeper understand some things.
Seeking in some samples/forum threads i found one which implements exactly what i want to do.
For simplicity i strip all the irrelevant parts, focusing only on the stuff i don’t understand:

void timer_setup(){
TCCR2A = 0;
TCNT2=455; //455 outputs 1.007khz
TCCR2B = B00000010;
//Timer2 Overflow Interrupt Enable
TIMSK2 = 1<<TOIE2;

I understand the mechanisms of interrupting, but what exactly are the following ? :

  1. TCNT2
  2. TCCR2A
  3. TCCR2B
  4. In many samples i see that TCNT2 is reset to some value inside the ISR: must this be done?

Are there anywhere references which explain why these registers have to be set to get some result?
Thanks in advance

All is explained in the AVR datasheets. Find them at


I suggest you and DingbatCA work together on your homework...

@Coding Badly: thanks very much for the link. It explains many things very simple! Yes i admit i have to make a lot of homework... :) It's just the beginning for me...