Vart tog "goto $-1" vägen??
Vart tog "goto $-1" vägen??
Håller på och konverterar ett gammalt 16F873 program till 18F2220 processor. Har märkt att genvägen vid hopp t.ex "goto $-1" funkar dåligt. Finns det något liknande i 16 bit coden?
Jag hade denna text i 16F873
;************************************************************
delay1
clrwdt
clrf slask
clrf slask1
movlw .25
movwf slask1
lab1
clrwdt
decfsz slask,f ;fördröjningsregister
goto $-2
decfsz slask1,f
goto $-4
return ;återgå dit anropet kom ifrån
;***********************************************************
När jag ändrat "goto lab1" funkade programmet
;************************************************************
delay1
clrwdt
clrf slask
clrf slask1
movlw .25
movwf slask1
lab1
clrwdt
decfsz slask,f ;fördröjningsregister
goto $-2
decfsz slask1,f
goto $-4
return ;återgå dit anropet kom ifrån
;***********************************************************
När jag ändrat "goto lab1" funkade programmet
I PIC18 tar varje instruktion två byte, vilket innebär att alla instruktioner ligger på jämna adresser, om du bara hoppar en byte hamnar du helt fel. Alltså måste goto $-1 bli goto $-2.
Men vissa instruktioner tar upp ännu mer utrymme, dessutom blir koden svårläst med dessa $xxx. Så jag rekommenderar starkt att man använder riktiga labels istället.
Men vissa instruktioner tar upp ännu mer utrymme, dessutom blir koden svårläst med dessa $xxx. Så jag rekommenderar starkt att man använder riktiga labels istället.
Strunta help i $-hopp och kör med labels enbart.
En anledning har du just upptäckt...
> Jag fick ju även en varning vid kompileringen
- Exakt vilken varning var det ?
- Vad sa den varningen dig ??
- Varför fanns inte varningen med i ditt *första* inlägg ????
Är det det faktum att du fick en varning som du menar "funkar dåligt" ??
En anledning har du just upptäckt...
> Jag fick ju även en varning vid kompileringen
- Exakt vilken varning var det ?
- Vad sa den varningen dig ??
- Varför fanns inte varningen med i ditt *första* inlägg ????
Är det det faktum att du fick en varning som du menar "funkar dåligt" ??
Senast redigerad av sodjan 3 juni 2008, 20:07:57, redigerad totalt 1 gång.