Nybörjarfrågor PIC
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" ?
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" ?
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?
Senast redigerad av Fritzell 27 december 2008, 12:12:57, redigerad totalt 2 gånger.
> 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.
"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.