#include "m128def.inc"
.ORG 0x000 ; yapmak istededigim olay çıkışların degistirilmesi fakat mantık hatasımı yapıyorum yada baska birseymi eksik
LDI R20,0xFF ; anlayamadım Register R25 sonra program devam etmiyor. farklı sekilerde bu islemi yapabilirim fakat burdaki
;hatayıda anlamak istiyorum yardımcı olursanız memun olurum.
OUT DDRA,R20
LDI R21,0xFF
OUT SPL,R21
OUT SPH,R22
LDI R23,0b01010101
LDI R24,0b10101010
MAIN:
OUT PORTA,R23
CALL DELAY
OUT PORTA,R24
CALL DELAY
JMP MAIN
DELAY:
CALL DELAYINT
CALL DELAYLOOP
RET
DELAYINT:
LDI R25,0x00
LDI R26,0x00
LDI R27,0x00
RET
DELAYLOOP:
INC R25
CPI R25,0xFF
BRNE DELAY ;burdan sonra aşagıya gecemiyorum
LDI R25,0x00
INC R26
CPI R26,0xFF
BRNE DELAY
LDI R26,0x00
INC R27
CPI R27,0x0E
BRNE DELAY
LDI R27,0x00
RET
DELAYLOOP:
INC R25
CPI R25,0xFF
BRNE DELAY -> burda delaya gidiyorsun
DELAY:
CALL DELAYINT
CALL DELAYLOOP - > burda tekrar dallandıgın rutine dallanıyorsun
RET
ve bu döngü boyle devam ediyor takii stack taşana kadar.
bu kısır döngüyü düzetmen gerek