Gast
#1688714
Hallo, mein erstes Programm mit Rücksprung funktioniert nicht. Nach Aufruf und Durchlauf von "RCALL wait" springt es zurück nach "start:" und nicht nach "LDI R16,16". Bei anderen Testprogrammen mit RCALL und RET habe ich das gleiche Problem. Der Rücksprung erfolgt immer zum Programmanfang und nicht dahin wo der Stack steht. Was mache ich falsch? Vielen dank! .INCLUDE "M16DEF.INC" RJMP start start: SBI DDRB,3 SBI DDRB,4 loop: LDI R16,8 ;PB3 = 1, PB4 = 0 // 2^3 = 8 OUT PORTB,R16 RCALL wait LDI R16,16 ;PB3 = 0, PB4 = 1 // 2^4 = 16 OUT PORTB, R16 RCALL wait RJMP loop wait: LDI R16,2 ;äußere Schleife wait_1: LDI R17,2 ;innere Schleife wait_2: DEC R17 BRNE wait_2 DEC R16 BRNE wait_1 RET ;Rücksprung