Sollte es nicht

#define F_CPU 3686400

lauten? Und counter sollte vielleicht so definiert sein:

volatile unsigned char counter;

Oder alternativ lokal und statisch in der ISR:

ISR(TIMER0_OVF_vect){

static unsigned char counter=0;

counter++;
...

Edit: Ich bin zu langsam...