Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
saso Član


Pridružen-a: Čet 18 Mar 2004 10:16 Prispevkov: 510 Aktiv.: 2.15 Kraj: Trbovlje
|
Objavljeno: Tor Jun 15, 2004 5:37 pm Naslov sporočila: PCL in PCLATH register |
|
|
Živjo
Zanima me, če mi kdo lahko bolj razumljivo razloži uporabo PCLATH rehistra v povezavi s tabelami.
V koliko jaz razumem, bi se moral ta uporabljati takrat, ko gre tabela iz ene stani v spominu na drugo stran.
Kako se to uporablja in ali je to sploh namenjenu temu pa ne vem.
Hvala za pojasnila.
Lep pozdrav
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Tor Jun 15, 2004 7:54 pm Naslov sporočila: |
|
|
Nekako tako... da ne pišem. Poglej priložen dokument v katerim je vse lepo razloženo.
Ko sem tole iskal po disku sem našel en pic.ng ki sem ga napisal pred kakimi petimi leti. (datoteka s pomočjo pri programiranju) Tisti, ki ne veste... NG datoteke odpira Norton Guides. To je rezidenčen program in je bil v rabi v DOS-ovih časih. Z "vročimi" tipkami si ga lahko poklical kar v editorju kjer si pisal program. Za odpiranje tudi obstaja verzija za windowse. (prebrskajte po netu)
Opis: |
|
 Download |
Ime datoteke: |
00556e.pdf |
Velikost datoteke: |
79.71 KB |
Downloadano: |
26 krat |
Opis: |
NG datoteka s pomočjo za PIC16F84, ki se odpira z Norton Guides |
|
 Download |
Ime datoteke: |
Pic.zip |
Velikost datoteke: |
9.16 KB |
Downloadano: |
14 krat |
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Tor Jun 15, 2004 8:33 pm Naslov sporočila: |
|
|
Na Filemanager v "programske pakete" sem pripel tudi program, ki teče pod windowsi ter zna odpirat NG datoteke. (Expert Guide For Windows v2.15)
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
saso Član


Pridružen-a: Čet 18 Mar 2004 10:16 Prispevkov: 510 Aktiv.: 2.15 Kraj: Trbovlje
|
Objavljeno: Sre Jun 16, 2004 7:05 am Naslov sporočila: |
|
|
Živjo
Bom preštudiral. Ta program že imam.
Če mi še vedno ne bo jasno pa se javim.
Lep pozdrav
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sre Jun 16, 2004 7:25 am Naslov sporočila: |
|
|
Težava nastane pri uporabi CALL ter GOTO. Če pogledaš 14 bitno kodo obeh instrukcij:
CALL = b"100kkk kkkk kkkk"
GOTO=b"101kkk kkkk kkkk"
Prostor za lolacijo skoka je 11 biten programski števec pa je 13 biten. Torej tista dva bita je treba nekako nastavit če so skoki čez strani. To najenostavneje naredimo tako , da preden izvedemo skok vpišemo tiste bite v PCLATH. Da ne računamo "ročno" na stran kamor želimo skočit nastavimo labelo ter le to najprej naložimo v W nato pa v PCLACH
Koda: |
org 0x05
movlw high LOKACIJA
movwf PCLATH
goto LOKACIJA
org 0x300
LOKACIJA
....
|
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
saso Član


Pridružen-a: Čet 18 Mar 2004 10:16 Prispevkov: 510 Aktiv.: 2.15 Kraj: Trbovlje
|
Objavljeno: Sre Jun 16, 2004 8:18 am Naslov sporočila: |
|
|
Živjo
Hvala Silvo.
Stvar sem ravnikar rešil nekako takole:
ORG 0X101
Sporocilo6
MOVWF PCL
IZPIS6 dt "1 UP/2 DOWN"
Konec6
*
*
*
movlw HIGH Sporocilo6
movwf PCLATH
PRINT Sporocilo6, IZPIS6, Konec6, Pointer, LCDw
clrf PCLATH
Hvala za pomoč.
Lep pozdrav
|
|
Nazaj na vrh |
|
 |
. Neznanec

Pridružen-a: Pet 01 Okt 2004 1:17 Prispevkov: 1 Aktiv.: 0.00
|
Objavljeno: Sob Okt 30, 2004 7:18 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika.
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Okt 30, 2004 7:51 pm Naslov sporočila: |
|
|
Če pogledaš sestavo same instrukcije CALL ti bo vse jasno. Torej vse instrukcije so dolge 14 bitov tako da nikakor ni možno naslovit v PC kateri je 13 biten v celoti. Pri CALL instrukciji so gornji trije MSb biti sama instrukcija preostalih 11 bitov pa je dejansko spodnjih 11 bitov PC (tja kamor pač želimo skočit) Progamski števec pa je 13 biten torej če je skok daljši je treba tista dva bita nekako nastavit. Tista dva bita sta v PCLATH -u ter sta bralno pisalna. Return pa le vrača shranjeno vrednost PC iz sklada.
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
. Neznanec

Pridružen-a: Pet 01 Okt 2004 1:17 Prispevkov: 1 Aktiv.: 0.00
|
Objavljeno: Sob Okt 30, 2004 9:47 pm Naslov sporočila: |
|
|
Brisana vsebina odstranjenega uporabnika.
|
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Okt 30, 2004 10:08 pm Naslov sporočila: |
|
|
Nekako takole
Koda: |
org 0x10 ;smo nekje na začetku progamskega polnilnika
movlw HIGH Sporocilo6 ;
movwf PCLATH
call Sporocilo6
............
...............
ORG 0X401 ;koda je na lokaciji 0x401
Sporocilo6 ; za lažjo predstavo binarno b'10000000001'
IZPIS6 dt "1 UP/2 DOWN"
|
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.95 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Sob Okt 30, 2004 10:27 pm Naslov sporočila: |
|
|
mogoče še *.lst datoteka, katero tvori prevajalnik - primer zgornje kode.
Mislim, da ti bo vse jasno.
Koda: |
MPASM 03.20.02 Released TEST.ASM 10-30-2004 22:21:52 PAGE 1
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 list P=16F877
00002 #include "c:\asm\p16f877.inc"
00001 LIST
00002 ; P16F877.INC Standard Header File, Version 1.00 Microchip Technology, Inc.
00373 LIST
0010 00003 org 0x10 ;smo nekje na začetku progamskega polnilnika
0010 3004 00004 movlw HIGH Sporocilo6 ;
0011 008A 00005 movwf PCLATH
0012 2401 00006 call Sporocilo6
00007
0401 00008 ORG 0X401 ;koda je na lokaciji 0x401
0401 00009 Sporocilo6 ; za lažjo predstavo binarno b'10000000001'
0401 3431 3420 3455 00010 IZPIS6 dt "1 UP/2 DOWN"
3450 342F 3432
3420 3444 344F
3457 344E
00011
00012 end
MPASM 03.20.02 Released TEST.ASM 10-30-2004 22:21:52 PAGE 2
SYMBOL TABLE
LABEL VALUE |
_________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|