Re: Konvertera binärtal till Decimaltal på display?
Postat: 6 mars 2011, 14:14:09
Japp, cblock skapar en serie med konstanter. T.ex :
skapar en serie med konstanter med värderna :
ADC = 0
ental = 1
tiotal = 2
hundratal = 3
Sen så använder många dessa konstanter som adresser till minnet,
men det är en annan sak, man kan ju använda konstanter till lite
vad man vill. RES är bättre eftersom det gör en korrekt allokering
av minne som faktiskt finns i den aktuella processorn.
Dessutom fungerar inte ditt cblock eftersom det kommer att börja
på "0" och där finns inget RAM minne. Dina instruktioner som använder
ADC, ental, tiotal och hundratal kommer att strula runt med de
första fyra SFR registren (INDF, TMR0, PCL och STATUS).
Detta hade fungerat (men det är ingen bra lösning för det) :
Det hade gett konstaner med värderna :
ADC = 20
ental = 21
tiotal = 22
hundratal = 23
Med cblock finns det inte heller något som hindrar att man gör något i stil med :
Och plötsligt har man variabler som skriver över varandra.
Med RES går det inte (om man inte allokerar specifikt till udata_ovr).
Kod: Markera allt
cblock
ADC
ental
tiotal
hundratal
endc
ADC = 0
ental = 1
tiotal = 2
hundratal = 3
Sen så använder många dessa konstanter som adresser till minnet,
men det är en annan sak, man kan ju använda konstanter till lite
vad man vill. RES är bättre eftersom det gör en korrekt allokering
av minne som faktiskt finns i den aktuella processorn.
Dessutom fungerar inte ditt cblock eftersom det kommer att börja
på "0" och där finns inget RAM minne. Dina instruktioner som använder
ADC, ental, tiotal och hundratal kommer att strula runt med de
första fyra SFR registren (INDF, TMR0, PCL och STATUS).
Detta hade fungerat (men det är ingen bra lösning för det) :
Kod: Markera allt
cblock h'020'
ADC
ental
tiotal
hundratal
endc
ADC = 20
ental = 21
tiotal = 22
hundratal = 23
Med cblock finns det inte heller något som hindrar att man gör något i stil med :
Kod: Markera allt
cblock h'020'
var1
var2
endc
...
; sedan lite senare i koden...
cblock h'020'
var3
var4
endc
Med RES går det inte (om man inte allokerar specifikt till udata_ovr).