incf "fungerar ej"

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
persika
EF Sponsor
Inlägg: 1541
Blev medlem: 31 juli 2006, 22:14:37
Ort: Österlen, Skåne

incf "fungerar ej"

Inlägg av persika »

Hur gör man när man vill öka w med 1 ?

har testat med: incf w, w
men det blir inte rätt

visserligen skulle man kunna ta

addlw 01
men då påverkas c-flagga, och det är inte alltid så bra..

Finns det nåt smart trick ?

PIC 12F675
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Spara accumulatorn i en minnesplats och läs tillbaka den med inkrement. Annars är det bara add immediate som finns att tillgå.

På PIC18 så finns ett SFR som motsvarar accumulatorn just för att alla instruktioner skall kunna operera på värdet i den, detta finns inte i 12 eller 16.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> har testat med: incf w, w
> men det blir inte rätt

Nej, för W är inte ett "File Register".

Som Marta skrev så kan man använda WREG (W-registret mappat som ett SFR) på PIC18 serien.

Det intressanta är varför du vill öka W med ett. Det vanligaste är att den
typen av räknare ligger i ett GPR...

> addlw 01, men då påverkas c-flagga, och det är inte alltid så bra..

INCF påverkar Z-flaggan, jag vet inte vilket som är "bäst"...
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7487
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Inlägg av Marta »

Du måste skriva lite mera om vad Du vill åstadkomma för att kunna få bra råd om hur Du skall lösa ett visst problem. Det finns mer eller mindre standardiserade lösningar på många saker, men för att kunna säga något mera så krävs mer info från Dig än en fråga om en specifik instruktiion.

Du känner väl till http://www.piclist.org ? På denna site kan Du hitta en hel del lösningar på standardproblem. Genom att studera små program därifrån kan Du också lära Dig en hel del om hur Du skall utnyttja instruktionssetet.

Vissa av de som presenterar material där skriver kod som är mycket svår att följa innan man själv har lärt sig, men det finns även en hel del som kan vara nyttigt för en nybörjare att ta del av.
Användarvisningsbild
persika
EF Sponsor
Inlägg: 1541
Blev medlem: 31 juli 2006, 22:14:37
Ort: Österlen, Skåne

Inlägg av persika »

Tack för intressanta svar!

Jag håller på att skriva en rutin som omvandlar decimal ascii-sträng till 24bits flyt-tal.
Har tidigare skrivet ett litet bibliotek med rutiner för f-add, f-mult, f-div, f-log. f-sqrt osv...

Kan inte återge hela koden, men här är en liten lösryckt bit,

ville skriva:

; ställ in pekare till ascii-siffror
movf rg2, w
addwf rg3, w ; antal ascii-siffror
decf w, w ; FEL
movwf rg9 ; pekar på ascii entals-siffra

fick ist bli:


; ställ in pekare till ascii-siffror
movf rg2, w
addwf rg3, w ; antal ascii-siffror
movwf rg9
decf rg9, f ; pekar på ascii entals-siffra

Så i detta fall var det enkelt att komma runt "problemet" med att decf inte funkar på w, jag vet att jag varit i liknande situation tidigare.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Inlägg av Swech »

Kan du inte skriva

decf rg2, w
addwf rg3, w ; antal ascii-siffror

så är det färdigt.....
Användarvisningsbild
persika
EF Sponsor
Inlägg: 1541
Blev medlem: 31 juli 2006, 22:14:37
Ort: Österlen, Skåne

Inlägg av persika »

Va smart!!!

Tänkte inte på det...
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

Skriver du det helt från scratch ?
Du kan ju annars sno/låna mycket ideer från www.piclist.com, t.ex :
http://www.piclist.com/techref/microchip/math/index.htm

En annan fråga är varför du skriver dessa FP rutiner, är det för något specifikt behov ?
Notera att det är *väldigt* ovanligt att man behöver floating-point beräkningar,
och om man ändå *tror* att man behöver det så har man fel i 9 av 10 fall... :-)
Användarvisningsbild
persika
EF Sponsor
Inlägg: 1541
Blev medlem: 31 juli 2006, 22:14:37
Ort: Österlen, Skåne

Inlägg av persika »

Säkert är det så.. med väl genomtänkt program så behövs inte FP-rutiner så ofta.

Ja, skriver scratch, mycket jobb men så har man koll på det hela.

Jag gör det som hobby och då kan man göra lite vad man känner för o tycker är kul.
Tycker det är kul med utmaningen att få det att funka.

Rutiner för in o utmatning av decimala tal kan ju vara bra iaf.
Tänker mig att kunna ansluta PIC till terminal-program, läsa av/ställa invärden för nån mät- eller styranordning.

Kollar ibland på "Piclist", hittar ofta nåt man inte tänkt på, ibland nåt som är dåligt kommenterat o man får luska länge för att begripa.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg av sodjan »

> Tycker det är kul med utmaningen att få det att funka...

Absolut, en fullständigt OK anledning! :-)
Det är skillnad om man en tvungen att göra något,
då vill man kanske sno mer färdig kod... :-)
Skriv svar