Es fehlen einige wichtige Informationen:
Welcher AVR?
Interrupts global aktiviert? ( sei(); )
ISR angelegt?

Außerdem kannst du beide Zugriffe auf TCCR0A zusammenfassen, das spart Flash weil GCC sonst erst den ersten Zugriff durchführt, dann das ganze wieder einliest, die zweite Modifikation anwendet und dann alles zurückschreiben muss.

mfG
Markus