PIC - nybörjare

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Camro
Inlägg: 34
Blev medlem: 6 april 2011, 23:34:07

PIC - nybörjare

Inlägg av Camro »

Hej alla!

Jag är en nybörjare inom microcontrollers. Har en fråga som säkert är enkel för många, men inte självklar för mig. Undrar över skillnaden mellan DC och C flaggorna, om jag förstått det rätt så blir C-flaggan hög om resultatet av en addition eller subtraktion blir större än 255 eller mindre än noll. Men på vilket sätt skiljer sig DC flaggan från C-flaggan :?:

Ödmjuka hälsningar från Camro :humm:
Användarvisningsbild
SeniorLemuren
Inlägg: 8432
Blev medlem: 26 maj 2009, 12:20:37
Ort: Kristinehamn

Re: PIC - nybörjare

Inlägg av SeniorLemuren »

DC: Digit carry/borrow
1 = A carry-out from the 4th low order bit of the result occurred
0 = No carry-out from the 4th low order bit of the result
bit (for ADDWF and ADDLW instructions)

bit 0:
C: Carry/borrow
1 = A carry-out from the most significant bit of the result occurred
0 = No carry-out from the most significant bit of the result occurred
Note: For borrow the second operand the polarity is reversed. A subtraction is executed by adding the two’s complement of. For rotate (RRF, RLF) instructions, this bit is loaded with either the high or low order bit of the source register.
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Re: PIC - nybörjare

Inlägg av exile »

Typ samma sak som för C men för (4bitar "tal") istället för en byte.
Används vad jag vet (eller fått för mig) för att räkna med BCD (binärkodad decimal).
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC - nybörjare

Inlägg av sodjan »

Nja, problemet är att det inte (som på PIC18 serien) finns någon
"Decimal Adjust W" (DAW) som faktiskt *använder* DC flaggan till
något vettigt. För BCD aritmetik behöver man också veta om de
fyra lägsta bitarna är > 9, och det fixar DAW instruktionen.

Jag ser det inte så där riktigt självklart hur man ska använda DC
flaggen rent praktiskt. Man kan emulera DAW på en PIC16, men det
är inte helt praktiskt...
Camro
Inlägg: 34
Blev medlem: 6 april 2011, 23:34:07

Re: PIC - nybörjare

Inlägg av Camro »

Tack för alla svar, fortsätter att studera microcontroller.....Säkert kommer det fler frågor allt eftersom jag gräver djupare.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC - nybörjare

Inlägg av sodjan »

Det absolut viktigaste du bör ha lärt dig av detta är var
svaret faktiskt redan fanns. Visst, det kan vara svårt att
tolka förklaringen i databladet, men det lät inte på sättet som
du formulerade frågan som att du ens hade läst den. D.v.s
det som SeniorLemuren citerade...
Camro
Inlägg: 34
Blev medlem: 6 april 2011, 23:34:07

Re: PIC - nybörjare

Inlägg av Camro »

Det var tolkningen av databladet som var problemet. Kanske borde jag skrivit att det var tolkningen av databladet som var problemet, bättring utlovas framöver :wink:
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC - nybörjare

Inlägg av sodjan »

Ja, det är ju tydligare och bättre med något i stil med:

"Jag har läst förklaringen i tabell 12-1 på sidan xxx, men förstår
inte vad de menar med att bla-bla-bla-bla..."

än bara en generell fråga som det var nu. T.ex så hade ju SeniorLemurens
citering av exakt det stycket som du tyligen hade läst varit helt onödigt. :-)

En bra fråga är halva svaret, så att säga.
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Re: PIC - nybörjare

Inlägg av exile »

Visst kan man använda DC utan att ha daw instruktionen (addera 6 och eventuellt ta bort 6 ) men det är klart att det blir lite mer code, sen hur användbar den är kan man fråga sig (utan daw instruktionen)
Exempel på användning av DC
Skriv svar