|
..использую AVR Studio
к портам А и С контроллера подключены светодиоды и должны мигать
для этого есть подпрограмма delay, но контроллер виснет на команде rcall delay. Если убрать подпрограмму и записать её код в теле программы то всё работает ?!
Это первый опыт с AVR может чего не догнал ?
код:
.include "D:\AVRStudio\Appnotes\8535def.inc"
.def temp =r16 ;general scratch space
.def fine =r18 ;loop delay counters
.def medium =r19
.def coarse =r20
.def bbb =r17
;****Source code***************************************************
.cseg ;CODE segment
.org 0
rjmp RESET ;Reset Handle
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
reti
;-----------------------------------------
reset:
cli ;disable global interrupts
ldi temp,0xFF
out DDRC,temp
ldi temp,0xFF
out DDRA,temp
ldi bbb,0x03
main:
rol bbb
out PORTC,bbb
out PORTA,bbb
rcall delay
rjmp main
;****Time Delay Subroutine for LED flash*********************************
delay:
ldi coarse,2 ;triple nested FOR loop
cagain:
ldi medium,255 ;giving about 1/2 second
magain:
ldi fine,255 ;delay on 4 MHz clock
fagain:
dec fine
brne fagain
dec medium
brne magain
dec coarse
brne cagain
ret
E-mail: info@telesys.ru