Problem med assembler.... (16F690)
Postat: 3 november 2014, 21:33:54
Hejsan!
Efter att programmeringen har legat i dvala i några år så började jag damma av ett gammalt projekt som var skrivet för ännu fler år sedan.
Bl.a. så var det inte uppdelat i olika filer utan allt var skrivet i en lång.
Så nu har jag börjat stycka upp det utan problem men när jag kommer till att lägga look-up tabellerna i en separat fil så stöter jag på ett problem.
När jag flyttar program countern (ursäkta om jag svänger mig med fel ord) så hoppar jag iväg helt fel och jag har bara gjort en copy/paste från det stora.
Så här ser den nya filen ut (ursäkta att indragningen med tab'ar blir kasst här)
list p=16f690
#include <p16F690.inc>
GLOBAL Look_Sub_hi, Look_Sub_lo
EXTERN Tecken_variabel
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Look-up tabellerna kommer här
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CODE
Look_Sub_hi: ; Här ligger värden för Sub_hi
decf Tecken_variabel, w ; Värdet på w behöver minskas med 1 då det hoppar ett för långt annars
addwf PCL, f ; Lägger värdet från w i PCL
retlw 0x27 ; Sub_hi = 27
retlw 0x03 ; Sub_hi = 03
retlw 0x00 ; Sub_hi = 00
retlw 0x00 ; Sub_hi = 00
retlw 0x00 ; Sub_hi = 00
Look_Sub_lo: ; Här ligger värden för Sub_lo
decf Tecken_variabel, w ; Värdet på w behöver minskas med 1 då det hoppar ett för långt annars
addwf PCL, f ; Lägger värdet från w i PCL
retlw 0x10 ; Sub_lo = 10
retlw 0xE8 ; Sub_lo = E8
retlw 0x64 ; Sub_lo = 64
retlw 0x0A ; Sub_lo = 0A
retlw 0x01 ; Sub_lo = 01
end
Kollar jag PCL och PCLATH så hoppar det ju inte in några konstiga värden när man stepar igenom.
Så om någon kan peka mig i någon riktning att rota vore jag tacksam.
M.v.h.
Ulf L.
Efter att programmeringen har legat i dvala i några år så började jag damma av ett gammalt projekt som var skrivet för ännu fler år sedan.
Bl.a. så var det inte uppdelat i olika filer utan allt var skrivet i en lång.
Så nu har jag börjat stycka upp det utan problem men när jag kommer till att lägga look-up tabellerna i en separat fil så stöter jag på ett problem.
När jag flyttar program countern (ursäkta om jag svänger mig med fel ord) så hoppar jag iväg helt fel och jag har bara gjort en copy/paste från det stora.
Så här ser den nya filen ut (ursäkta att indragningen med tab'ar blir kasst här)
list p=16f690
#include <p16F690.inc>
GLOBAL Look_Sub_hi, Look_Sub_lo
EXTERN Tecken_variabel
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Look-up tabellerna kommer här
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CODE
Look_Sub_hi: ; Här ligger värden för Sub_hi
decf Tecken_variabel, w ; Värdet på w behöver minskas med 1 då det hoppar ett för långt annars
addwf PCL, f ; Lägger värdet från w i PCL
retlw 0x27 ; Sub_hi = 27
retlw 0x03 ; Sub_hi = 03
retlw 0x00 ; Sub_hi = 00
retlw 0x00 ; Sub_hi = 00
retlw 0x00 ; Sub_hi = 00
Look_Sub_lo: ; Här ligger värden för Sub_lo
decf Tecken_variabel, w ; Värdet på w behöver minskas med 1 då det hoppar ett för långt annars
addwf PCL, f ; Lägger värdet från w i PCL
retlw 0x10 ; Sub_lo = 10
retlw 0xE8 ; Sub_lo = E8
retlw 0x64 ; Sub_lo = 64
retlw 0x0A ; Sub_lo = 0A
retlw 0x01 ; Sub_lo = 01
end
Kollar jag PCL och PCLATH så hoppar det ju inte in några konstiga värden när man stepar igenom.
Så om någon kan peka mig i någon riktning att rota vore jag tacksam.
M.v.h.
Ulf L.