Was mir nur auffällt ist Code wie

TCCR1B=5;

Das mag für ein Controller korrekt sein, für einen anderen nicht. Verwende die Bitdefininitionen aus der avr/io.h
Die Bits sind idR so benannt wie in den Manuals.
Verschiedene AVR-Hardware ist teiweise verschieden zu bedienen, zB Timer1 bei 90S2313 gegenüber ATmega8.
Und avr/io.h sieht für verschiedene Targets verschieden aus. Zwischen 90S8515 und Mega32 ist's vielleicht genau das Problem.