Bist du sicher das du 1MHz verwendest?
Auf was hast du den das Fusebit für den Takt am Mega16 stehen?
"#define F_CPU 1000000" ist nur eine Variable für die Software, welche die Taktgeschwindigkeit die du verwenden willst beinhaltet. Das stellt den Takt nicht auf 1MHz um. Das machst du nur mit den Fusebits
Deswegen kannst du in deinem Programm das #define F_CPU auch löschen, weil es macht in dem jetzigen Programm keinen Sinn und hat auch keine Funktion.
Eventuell hast du noch den 8MHz internen Oszillator aktiv und damit ist der Timer zu schnell für deine Berechnungen.
Lesezeichen