Hi Tob,
ich habe Dein Programm mal gewaltig zusammengestrichen, um Dir den Strukturfehler zu zeigen:Siehtst Du, was hier passiert? Aus "loop" kann nach "rechts" gesprungen werden. Am Ende von "rechts" steht "reti". Da aber kein Interrupt vorliegt, liegt auf dem (Hardware-)Stack keine geeignete Rücksprungadresse! Du musst da noch einiges korrigieren, aber jetzt kennst Du erst einmal das Hauptproblem.Code:.org 0x0000 rjmp main .org OVF0addr reti main: ;.... ldi temp, 0b00000010 ;Timeroverflow Interrupt Ein out TIMSK, temp sei loop: in temp2, PINB ;Taster betätigt? ;.... breq rechts ; dieser Sprung führt zu einem Problem.... (s.u.) rjmp loop rechts: ;... reti ; ...denn wie soll der PC hier wieder korrekt gesetzt werden?
Gruß
Fred







Zitieren

Lesezeichen