Das Problem wird wohl die Zeile
sein.Code:TCCR1B &= ( (~(1<<CS12)) | (~(1<<CS10)) ); //timer stoppen
( (~(1<<CS12)) | (~(1<<CS10)) ) ist nämlich konstant 0b11111111, sprich der gesamte Ausdruck hat keinerlei Wirkung und Timer1 läuft weiter. Mir scheint es, dass Du dich mit binären Verknüpfungen noch nicht besonders gut auskennst. Auf www.mikrocontroller.net/articles/Bitmanipulation ist das genau beschrieben.
MfG Mark
Lesezeichen