Sziasztok!
Belefutottam egy olyanba, hogy PIC16F676-nél adattáblát olvasnék a PCL növelésével, de vélhetőleg a 256 környékén áll a PCL, ezért hülyeségeket csinál. (tuti az, mert ha pár NOP-ot beírok elé, akkor mást csinál, másik programrésznél pedig hibátlanul fut ez a rutin.
karakterek
movf szamlalo,w
addwf PCL,f
retlw 0x54 ;ez az utolsó
retlw 0x4c
retlw 0x55
retlw 0x41
retlw 0x4e
retlw 0x45
retlw 0x52
retlw 0x20 ;ez az első karakter
Van ez helyett más, hasonlóan egyszerű megoldás?
Üdv: Jácint
Szia!
Én így használom, semmi gond nincs vele:
TBL_R MOVFW TEMP
ADDWF PCL,1
RETLW .63
RETLW .6
RETLW .91
RETLW .79
RETLW .102
RETLW .109
RETLW .125
RETLW .7
RETLW .127
RETLW .111
RETURN
Nálad lehet hogy laphatáron van?
Üdv: Emil
0
Szia Emil!
Igen, laphatáron. de mire rájöttem!
Itt találtam valamit, de még megg kell értenem.
http://siriusmicro.com/projects/i1table.html
De találtam olyat, is, hogy másik lap elejére lehet átrakni.
http://ww1.microchip.com/downloads/en/AppNotes/00556e.pdf
Üdv: Jácint
0
Szerintem legegyszerűbb mindjárt laphatárra tenni alsó) és egy szubrutin hívással beolvasni.
0
Szia!
Szerintem is, de hogy tudom laphatárra tenni?
Jól sejtem, hogy a subrutin elejére egy org 0x300 a laphatárra tenné, 16 bájtos a táblám.
tehát:
org 0x300
karakterek
movf szamlalo,w
addwf PCL,f
retlw 0x54 ;ez az utolsó
retlw 0x4c
retlw 0x55
retlw 0x41
retlw 0x4e
retlw 0x45
retlw 0x52
retlw 0x20 ;ez az első karakter
Üdv: Jácint
0
HWJ
Szia Jácint !
Jó az amit csinálsz, ezt a táblát hívhatod CALL -al vagy GOTO -val ,viszont be kell előtte állítani a PCH -t is, és a rutinból kilépve törölni kell a PCH -t.
A felső egy tábla eleje a második meg ahogy meghívom a táblát. Ez működik az inverteremben (64 db 32 elemű tábla).
Itt egy példa:
org 0x100
SineTable785
addwf PCL,F
retlw .0
retlw 128
retlw 148
retlw 166
.
.
.
STable6
movf STEPCOUNT,W
bsf PCLATH,PCH0
nop
call SineTable785
goto Tablaveg
Tablaveg
clrf PCLATH
return
Üdv. V.J.
0
Szia!
Kezdem kapizsgálni.
Ha org 0x300-at állítok be, akkor gondolom PCH0 és PCH1 et setelem. Ha törlöm a PCLATH-ot, akkor is tudni fogja, melyik táblára kell visszalépnie?
Üdv: Jácint
0
HWJ
Szia !
Igen, az a jó beállítás. Nálam a nop helyére is valamelyik PCHx set kerül. Én azért törlöm a PCLATH-ot mert nem kell figyelni rá az új beállításnál, a RETURN után a program visszatalál a megfelelő helyre.
Üdv. V.J.
0
Szia!
Köszönöm, működik. Igaz, a megértéséhez vagy hatszor leolvastam az application notest.
Azért volt furcsa, mert a CALL és GOTO 11 bittel dolgozik, így az 1k-s memóriánál gond nélkül ugrált akár 0x0xx és 0x3xx között, viszont az addwf PCL,F -nél betölti a PCLATH-ból, és ha az nem a megfelelő táblára mutat, rossz helyre fog mutatni.
Üdv: Jácint
0