Hjälp med att inkludera wait_loop från annan fil. AVR Studio

Permalänk
Medlem

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

Citat:

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