Problem med PCL och PCLATH (16F767)
Postat: 19 september 2006, 21:12:46
Jag håller på att bygga en nummerpresentatör och har kopplat en grafisk LCD till picen. Kodandandet har gått mycket bra men idag råkade jag ut för något jobbig. Jag trodde att om man använde pagesel så behövde man inte bry sig om sidor och så. Men icke! Nedan är ett urklipp ur koden:
Det fina är att den kommer till nummerHEX utan problem. Men sen, om jag inte har de två raderna om PCLATH så hoppar programmet bakåt (till H'085D') vilket ju inte är så kostigt, om vi antar att W är noll.
Måste man alltid ladda PCLATH när man hoppar såhär och nu måste jag ju återställa PCLATH nu när jag har pillat i den, det blir mycket omkodande.
Kunde jag ha löst detta på ett bättre sätt? (Sätta tabellen först på en ny sida är inte ett alternativ)
Tack och hej!
-Per
Kod: Markera allt
...
...
org H'00BE'
pagesel nummerHEX
CALL nummerHEX
....
....
org H'0A5D'
nummerHEX
BANKSEL PCLATH <----
BSF PCLATH,1 <----
ADDWF PCL,F
pagesel zero
CALL zero
RETURN
pagesel one
CALL one
RETURN
Måste man alltid ladda PCLATH när man hoppar såhär och nu måste jag ju återställa PCLATH nu när jag har pillat i den, det blir mycket omkodande.
Kunde jag ha löst detta på ett bättre sätt? (Sätta tabellen först på en ny sida är inte ett alternativ)
Tack och hej!
-Per