PIC asm - "större än"?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Klas-Kenny
Inlägg: 11757
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

PIC asm - "större än"?

Inlägg av Klas-Kenny »

Klurar på en funktion som ska känna av ifall det är "mörkt eller ljust", detta med ett ljuskänsligt motstånd och ADC hade jag tänkt mig, samt ska kunna ställa in med hjälp av en potentiometer hur mörkt det ska vara för att räknas som mörkt.

Dock kan jag inte komma på hur jag ska kunna göra en bra funktion för det där, då jag vill ju ha ungefär
if(value_from_pot < value_from_resistor)

Dock kan jag inte komma på hur man kan lösa detta med ASM, några tips?
*L.R*
Inlägg: 61
Blev medlem: 30 mars 2008, 13:39:15
Ort: Norra sthlm

Re: PIC asm - "större än"?

Inlägg av *L.R* »

någon enkel aritmetik i form av subtraktion med fast värde. Sedan kolla lämplig flagga i stusregistret.
Kolla C, DC flaggor

Vad är det för processor?
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4736
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: PIC asm - "större än"?

Inlägg av Swech »

PIC.

Du kör subtraktion och kollar på Carry flaggan
Ladda W med din gräns och subtrahera med ADns värde
Utifrån om det blev carry eller inte så avgör du vilken som är störst.
Är det större än en byte som du skall kolla så får du subtrahera i 2 steg och köra med
subtraktion med carry i steg 2

Swech
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: PIC asm - "större än"?

Inlägg av v-g »

Om du har PIC18 serien finns CPFSGT Compare F Skip Greater Than (finns även Less than)

Kör du PIC16:

Subtraherar du och kollar C biten i status.

För sent ute var man också :?
Användarvisningsbild
Klas-Kenny
Inlägg: 11757
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: PIC asm - "större än"?

Inlägg av Klas-Kenny »

Aha, tackar :)

Kom nyss på hur man kan göra det enklare (Skulle jag tro...) med hårdvara istället (Spänningsdelare med ljuskänsligt motstånd samt pot, sen en zener ut, borde ge vettigt resultat? Så sparar jag i alla fall en pinne på PIC'en samt en del tid till att skriva mjukvara), men detta är ju bra att veta i många lägen ändå :)

Det är PIC16 (Troligen F616) som skall användas.
bos
Inlägg: 2305
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Re: PIC asm - "större än"?

Inlägg av bos »

Swech skrev:Utifrån om det blev carry eller inte så avgör du vilken som är störst.
Om man bara gör en subtraktion så går det inte att enbart med hjälp av carry ta reda på vilket som är störst. Om tal1 är större än tal2 så blir det ingen carry i operationen tal1 - tal2, men det blir heller inte någon carry om de båda talen är lika. Med andra ord måste man även använda zero-flaggan / Z.

Om man gör tal1 - tal2 och sen tal2 - tal1 och jämför carrys så slipper man förstås använda Z, men det är ju att krångla till saker i onödan.
Användarvisningsbild
Klas-Kenny
Inlägg: 11757
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: PIC asm - "större än"?

Inlägg av Klas-Kenny »

Fast sen är det ju skillnad på < och <= :wink:
Man brukar vad jag vet skilja på "större än" och "större än eller lika med".
bos
Inlägg: 2305
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Re: PIC asm - "större än"?

Inlägg av bos »

Vad har det för relevans i fallet med att kolla carry?
Användarvisningsbild
Klas-Kenny
Inlägg: 11757
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: PIC asm - "större än"?

Inlägg av Klas-Kenny »

På vilket sätt kan det bli krångel?

*nu pratar jag symboler i högnivåspråk*
När man använder <, vilket jag efterfrågade, och båda värden är detsamma, får man FALSE.
När man använder <= där emot, och båda värden är samma, får man TRUE.

Dvs, om jag förstått saken rätt, så borde det räcka med att kolla Carry för att få en "<"-funktion?
bos
Inlägg: 2305
Blev medlem: 24 februari 2007, 23:29:15
Kontakt:

Re: PIC asm - "större än"?

Inlägg av bos »

Ok, du menar så. Då är jag med.
Skriv svar