Hallo

Die Werte sind nicht initialisiert.

Zu: OCR0A = 200-1; // to get 200 steps

Ich glaube, das -1 ist falsch. Bei 200 wird das Zählregister mit 0 beschrieben und dann der Interrupt ausgeführt. Beim Zählen der ms schreibst du ja auch bei 1000 die 0 rein und nicht schon bei 999:

In CTC mode the counter is cleared to zero when the counter value (TCNT0) matches the OCR0.
Hier ist atmel scheinbar etwas ungenau, den zu folgender Beschreibung für den "Normal Mode" finde ich keine Entsprechung beim "CTC":
(In normal operation) the Timer/Counter Overflow Flag (TOV0) will be set in the same timer clock cycle as the TCNT0 becomes zero.

Was ist daran "krumm"?
32768 kHz
http://www.google.de/search?q=frequenz+uhrenquarz

Gruß

mic