Sida 3 av 3
Postat: 25 december 2008, 17:50:13
av sodjan
> Så registrerna nollställs alltså automatiskt när de har nått 0?
Är inte det samma sak ?
Postat: 25 december 2008, 20:29:48
av Fritzell
00h är väl inte samma som FFh? Eller har jag missat något?
Postat: 25 december 2008, 20:50:29
av v-g
Nej 00h & FFh är inte samma sak, de är ett värde från varandra om man talar om en byte.
Postat: 25 december 2008, 21:19:35
av vfr
Att registret når noll är ju samma sak som att det nollställs, inte att noll och FF är sammma sak. Lite förvirring...

Postat: 26 december 2008, 01:01:32
av sodjan
I delay-looparna kommer Q1 och Q2 att räkna från 'FF' => '00' då villkoret
för DECFSZ uppfylls och rutinen är klar. I första varvet vid *nästa* körning
av delay-looparna så kommer Q1 och Q2 först att räkna '00' => 'FF', och
sedan kör det på som innan tills det blir '00' igen. Alltså behöver du inte sätta
Q1/Q2 till 'FF' i själva koden, du får i princip samma fördröjning i alla fall.
Utom möjligen vid första körningen av delay-looparna, då Q1 och A2 är "undefined",
om det spelar roll, så får du hantera det innan körningen av delay-looparna.
Om du vill ha maximal fördröjning så är det bättre att använda "CLRF Q1/Q2"
istället, det ger ett extra "varv", men det är alltså helt onödigt eftersom både
Q1 och Q2 kommer att vara h'00' i alla fall...
Slutligen, vad exakt menar du med "nollställs" ?
Postat: 27 december 2008, 12:06:37
av Fritzell
Aha okej. Tackar för svaren. Vad jag menade med nollställs är att de får samma värde som de hade innan man började räkna bort från dem med decfsz. Hade för mig att det inte händer något när man drar bort 1 från 00h men i själva verket hamnar värdet på FEh istället?
Postat: 27 december 2008, 12:11:57
av Walle
FFh

Postat: 27 december 2008, 12:13:16
av sodjan
> Vad jag menade med nollställs
"Nollställs" är att något blir "noll".
Det du beskriver skulle jag kalla "återställs".
> ...man drar bort 1 från 00h men i själva verket hamnar värdet på FEh istället?
Nej.
h'FF', så klart... D.v.s b'00000000' "minus ett" => b'11111111'
h'FF' "minus ett" => h'FE'
> innan man började räkna bort från dem med decfsz.
Det finns ingenting som håller reda på var du börjar att räkna !
D.v.s inbyggt i processorn, du själv kan ju fixa det med din egen kod, om du vill.
Postat: 27 december 2008, 12:13:29
av Fritzell
Just det

. Hann faktiskt ändra till FF innan jag såg ditt svar men ändrar väl tillbaka för sammanhangets skull

.
Postat: 27 december 2008, 12:15:05
av sodjan
Ah, OK...

Då var både Walle och jag lite för snabba...

Tips: Använd "Förhandgranska" så är det lättare att fånga upp sådana
där småmissar innan man "Skickar".