Hjälp med att inkludera wait_loop från annan fil. AVR Studio
Jag håller på med några gamla labb uppgifter i AVR Studio 4 (assembler) där man tidigare har gjort en "wait loop-subrutin". Nu senare ska man ta denna subrutin och göra så att man kan anropa den från andra program, jag tolkar detta som att man lägger den i en egen .asm fil och anropar den med .INCLUDE, och denna wait-loop hämtar sedan ett värde ifrån huvud programmet. Men hur jag än testar så får jag det inte att funka. Beroende på vart jag placerar .INCLUDE så vill den liksom skriva över huvudprogrammet med denna extra kod
Delay subroutine with variable delay time Modify the program in task 5 in Lab 1 to a general delay routine that can be called from other programs. It should be named wait_milliseconds. The number of milliseconds should be transferred to register pair R24, R25.
Jag har gjort ett litet test program bara för att testa det så namn stämmer inte med de i uppgiften.
// huvudprogrammet
.NOLIST
.INCLUDE = "m16def.inc"
.LIST
.INCLUDE ="wait_loop.asm"
.DEF Temp = r16
.DEF DelayL = r18
.DEF DelayH = r19
.EQU CountValue = 0xFFFF
.CSEG
.ORG 0x00
rjmp RESET
.ORG 0x30
RESET:
ldi Temp, LOW(RAMEND)
out SPL, Temp
ldi Temp, HIGH(RAMEND)
out SPH, Temp
START:
nop
rcall WAIT
rjmp START
// wait_loop.asm
WAIT:
ldi DelayL, LOW(CountValue)
ldi DelayH, HIGH(CountValue)
WAIT_LOOP:
dec DelayL
brne WAIT_LOOP
dec DelayH
brne WAIT_LOOP
dec Counter
brne WAIT
ldi Counter, 0xA
ret