Mindre än 1? (ASM)

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Inlägg av Kaggen »

Under ett anfall av total uttråkning läste jag igenom lite av din kod :)

Jag fann ett vanligt nybörjarfel som jag kallar "vad ligger *igentligen* i W-registret?"-felet.

Kod: Markera allt

step_1   
   bsf      sens1         ;ladda upp kondensatorn
   call   delay
   bcf      sens1
   movlw   0h            ;nollställ "time"
   movwf   time
   movlw   1h            ;lägg 1hex i W registret
   goto   portb5_in      ;ändra sens1 (portb5) till ingång

step_2
   addwf   time,f
...
Om du noga kontrollerar koden under din "step_1"-del av programmet sätter du w-registret till 1 INNAN du hoppar till kod "portb5_in" vilken också proppar in massa grejor i w-registret. När koden sedan hoppar tillbaka till "step_2" tror du i godan ro att du via "addwf time,f" adderar 1 till variabeln "time" i varje iteration när du igentligen adderar... ja, vad är det du adderar... ?

Edit: Såg just att sodjan tipsade om samma sak, man är sen som vanligt...

/Kaggen
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Helt rätt.
W kommer tillbaka från "portb5_in" med b'00100000' i "bagaget"... :-)

Sen, lite inom parentes, så föredrar jag personligen h'00' och h'01' istället
för 0h och 1h (vilket är format som inte ens är upptagna i tabellen i
MPASM manualen !). Det är möjligt att det fungerar, men i alla fall...
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Det tänkte jag inte på fören nu när ni skrev det :) Tack så mycket! Får fixa det när jag kommer hem. Ska ta och ändra till "h'1'" istället :)

//Daniel A
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Konstigt svar. Svårt att veta vad du syftar på.
*Vad* är det du inte har tänkt på och ska fixa ?
Användarvisningsbild
squiz3r
Inlägg: 5424
Blev medlem: 5 september 2006, 20:06:22
Ort: Lund
Kontakt:

Inlägg av squiz3r »

Jag syftade på att jag ska ändra problemet med "vad ligger i W problemet" :) , och med att det ska vara h'1' istället för 1h eller 0x1.

För övrigt så funkar det nu att räkna "tiden" :D

Tack!
//Daniel A
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

OK :-)
Skriv svar