Gast
#100822
Hallo allerseits, ich programmiere momentan gerade einen Atmel AT90S2313. In meinem Programm möchte ich gerne eine Interrupt-Routine laufen lassen. Nun stehe ich vor dem Problem, dass ich in der I-Routine eine Programmverzweigung benötige. Hierfür ist es doch erforderlich bestimmte Register per POP & PUSH zu sichern, oder?? Kann mir jemand sagen, wie ich es hinbekomme, dass nach dem Sprung das Programm an der richtigen Stelle abläuft?? Folgenden Code habe ich: int0_handler: in temp, pind sbrc temp, 4 rcall rueck vorwaerts: adiw Messwertl, 1 rcall serout reti rueck: sbiw Messwertl, 1 rcall serout reti Problem: Wenn das Unterprogramm rueck ausgeführt wird, wird nicht die Interrupt-Routine verlassen, sondern bei vorwaerts eingesprungen. Gruß Michi