PIC asm - 0-255 -> 0-9 ?

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

PIC asm - 0-255 -> 0-9 ?

Inlägg av Klas-Kenny »

Jag behöver göra om 0-255 från ADC'n till 0-9 men kan inte komma på någon enkel lösning till detta. Det ända jag kan komma på är att kolla om det är mellan 0-28, i så fall 0, 29-56 i så fall 1 osv. men det känns som en omväg, det borde finnas något enklare sätt ifall man är lite klurig, så, några lösningar? :D

Och jag vet att 255 inte är jämnt delbart med 9, jag behöver ingen extrem exakthet då det ska justeras med en pot, ifall några steg skiljer +/- någon grad spelar det ingen roll.

Handlar om en PIC16F886 ifall det spelar någon roll.
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: PIC asm - 0-255 -> 0-9 ?

Inlägg av bearing »

Den här tråden är ju nästan identisk med den förra som handlade om att göra om till 0-100.

Svaret är att multiplicera med 10. Resultatet blir då ett 16-bitars tal, alltså två stycken 8 bytes, en hög och en låg. Den höga byten av resultatet kommer då innehålla siffran 0-9.

Ett snabbt sätt att multiplicera med tio är att först multiplicera utgångsvärdet med 8 (d.v.s. shifta tre steg vänster), och sedan addera utgångsvärdet*2 (t.ex. shiftning ett steg vänster och addition, eller addition två gånger utan shiftning). Resultatet blir multiplicering med (8+2) eller (8+1+1).
Användarvisningsbild
Klas-Kenny
Inlägg: 11843
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: PIC asm - 0-255 -> 0-9 ?

Inlägg av Klas-Kenny »

Den tråden har jag missat :humm:

Tack i alla fall :)

Måste lära mig alla de där metoderna med vad man kan få fram genom att skifta hit och dit och liknande....
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC asm - 0-255 -> 0-9 ?

Inlägg av sodjan »

Ett helt annat sätt är att skala insignalen till ADC'n på ett sådant sätt
så att du direkt får rätt värde. T.ex 0-160 i ADC'n ger 0-10 efter 4 höger
shift (0-80, 0-40, 0-20 och, efter 4'de shiften, 0-10). Eller 1-175 är bättre,
om du vill ha "hela" 10 delen...

4 shift är dessutom detsamma som en SWAP och en OR, så det går att
"trimma" lite.

Sen så beror ju det hela även på vad du ska ha ditt "0-10" värde till...

> Måste lära mig alla de där metoderna med vad man kan få fram genom
> att skifta hit och dit och liknande....

Shift är alltid *2 eller /2 beroende på år vilket håll det sker.

För generella rutiner för division med en konstant kan man använda
http://www.piclist.com/techref/piclist/ ... divmul.htm
(som verkar ha något tillfälligt problem just nu...)
Användarvisningsbild
Klas-Kenny
Inlägg: 11843
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: PIC asm - 0-255 -> 0-9 ?

Inlägg av Klas-Kenny »

Ja så skulle man ju också kunna göra :)

Det jag ska använda det till är att jag bygger en svepande uv-box, och så tänkte jag ha 10 olika steg på längder som belysningen ska ske på. Detta ska då ställas med en pot, samt visas vilket steg man ställt in på en 7seg-display.

Den sidan såg trevlig ut! Sparad som favorit :D
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: PIC asm - 0-255 -> 0-9 ?

Inlägg av sodjan »

> Den sidan såg trevlig ut! Sparad som favorit

Det räcker att komma ihåg www.piclist.com, sedan klickar man
sig fram till resten... :-)

> ...10 olika steg på längder som belysningen ska ske på. Detta ska då ställas med en pot...

OK.
Jag kan tycka att det är lite av en omväg över pot => ADC => division,
när det hade fungerat med en "upp/öka" och en "ner/minska" knapp...
Användarvisningsbild
Klas-Kenny
Inlägg: 11843
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: PIC asm - 0-255 -> 0-9 ?

Inlägg av Klas-Kenny »

Nog är det kanske onödigt, men det fick mest bli så för att jag tyckte att en pot va lättare att montera och få snyggt än två knappar :D
Användarvisningsbild
E85
Inlägg: 1274
Blev medlem: 29 maj 2007, 16:24:19
Ort: Övik

Re: PIC asm - 0-255 -> 0-9 ?

Inlägg av E85 »

Finns ju ett "mellanting" också, roterande pulsgivare.. typ nån av dom här: 35-846-53, 35-846-71
Användarvisningsbild
Klas-Kenny
Inlägg: 11843
Blev medlem: 17 maj 2010, 19:06:14
Ort: Växjö/Alvesta

Re: PIC asm - 0-255 -> 0-9 ?

Inlägg av Klas-Kenny »

Vilket dock är betydligt dyrare, samt frakten från Elfa är inte att leka med.

Såg att där fanns ett par speglar på sidan Sodjan länkade och använde den, nu fungerar det perfekt :tumupp:
Användarvisningsbild
E85
Inlägg: 1274
Blev medlem: 29 maj 2007, 16:24:19
Ort: Övik

Re: PIC asm - 0-255 -> 0-9 ?

Inlägg av E85 »

Ja 16kr är väl inte så extremt farligt iofs. Och frakten blir 35kr om du väljer brev och betalar med kort. Inte speciellt svettigt. Men funkar det nu så är det ju bra då. :tumupp:
Skriv svar