Ich denke, daß das Programm zuerst die Hauptschleife erreicht, bevor der erste Interrupt auftritt - der Timer0 muß ja erstmal bis 255 hochlaufen nachdem er mit dem CS00 Bit gestartet wurde. (Könnte in einer Simulation schon einiges dauern)
Tritt dann der erste Interrupt auf, wird PB0 auf high (1) gelegt und r16 invertiert. Beim zweiten Interrupt wird dann PB0 auf low (0) gesetzt. usw.
Im Programmablauf sehe ich keinen Grund, warum der PB0 nicht toggeln sollte (wenn RETI am Ende der ISR steht) und das rjmp Interrupt auch auf dem OVF0 Interruptvektor steht - also die syntax auch vom übrigen Code paßt.
Der Programmcounter umfasst 2 Byte! - Könnte es das sein? Wie gesagt kann ich das leider nicht nachtesten.E: Was mir noch auffällt, das der Programm Counter bei der Adresse 13 bei main ankommt.
Im Speicher steht : 0x0000 dann kommt direkt 0x0013.
Kurz Offtopic, wieso stehen die Zahlen in 0x0013? Wäre das nicht 0x0D?
Ich vermute eventuell einen Simulator Bug oder Einstellung wie zB:
http://www.mikrocontroller.net/topic/292982
Gruß
Searcher
Lesezeichen