Division på PIC mikrokontroller

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Division på PIC mikrokontroller

Inlägg av Swech »

Kör du alltid med samma hastighet så kan du ju lägga in ett fast värde att kolla mot.
Dina pulsmätningar kommer att diffa lite upp och ned men detta är mer beroende på faktorer som t.ex
andra interrupt än instabila klockor.
Tror att du skjuter lite över målet...

Nollställer du din räknare vid varje positiv flank (eller negativ) så kommer den att hålla sig inom 100 ticks och vara relativt stabil. Har du en klockdiff på 5% så blir det ju 95 -105 ticks vilket är långt från dina 25 och 75 som du vill testa mot.

Swech
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Division på PIC mikrokontroller

Inlägg av vfr »

Bearings förslag är ett utmärkt trick om man har MUL men inte DIV. Men för den här applikationen så är division ö.h.a skjuta över målet. Gör som Icecap förslår istället!
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Division på PIC mikrokontroller

Inlägg av blueint »

Bra metod!
Hur får du fram talet 86 ..?

Tänkte på problemet som ett pulsbreddsproblem, och därmed kvot istället för genvägen med dubbelskiftning till höger och efterföljande större/mindre än jämförelse.

Swech,vfr: Tanken är att göra överföringen oberoende av instabilitet i den interna RC oscillatorn. Den ska visst kunna variera upptill 50%. Och genom att nyttja föregående puls så ackumelerar man inte bitfel över tiden. Dvs om klockcykeln är 250 ns till en början men drar sig åt 312 ns. Så kommer överföringsalgoritmen att följa med och justera.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Division på PIC mikrokontroller

Inlägg av sodjan »

> Den ska visst kunna variera upptill 50%.

Vad kan variera +/- 50% ??
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Division på PIC mikrokontroller

Inlägg av vfr »

Säkert oscillatorfrekvensen han menar. Men varierar den verkligen så mycket, ens i värsta fall?
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Division på PIC mikrokontroller

Inlägg av Swech »

Den varierar INTE 50% trots att du talar om PIC :wink:
Om så skulle vara fallet så skulle man aldrig kunna använda sig av en sådan RC oscillator

Du har inte rört till det och läst om watchdogtimern? Jag vet att på AVR så har den
stor spridning och om jag inte minns fel så har det varit så även på PIC.

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

Re: Division på PIC mikrokontroller

Inlägg av sodjan »

Den gamla RC-oscillatorn (där man hade en extern R-C länk)
hade lite större spridning, vet dock inte om den var 50%.

Watchdog sprider en hel del, del finns applikationer där den
används till temp-mätning... :-)
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Division på PIC mikrokontroller

Inlägg av vfr »

Mmm. Det borde snarare handla om max 5-10% utan kalibrering och ännu bättre med kalibrering.
Användarvisningsbild
Swech
EF Sponsor
Inlägg: 4750
Blev medlem: 6 november 2006, 21:43:35
Ort: Munkedal, Sverige (Sweden)
Kontakt:

Re: Division på PIC mikrokontroller

Inlägg av Swech »

Har hört på seminarium med microchip att RC oscillatorn naturligtvis har större spridning
(individberoende) än extern kristall men att den är stabilare i avseende på temperatur.
Har du en gång kalibrerat den så går den mycket bra.

Har produkter som kör på INT RC och kör 9600 baud, funkar helt perfekt -
vissa individer får man kalibrera men sen går de som tåget. Processor = AVR i detta fall

Swech
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Division på PIC mikrokontroller

Inlägg av blueint »

Jag kan ha läst fel. Men jag avser INTRC i PIC16 och PIC18. Och ev extern RC i tidigare modeller.
Den varierar med temperatur och spänning. Men det kanske är max 2% ..? (vill minnas att jag sett någon sådan siffra).

Swech, trots PIC?, något speciellt dåligt med dom? ;)
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Division på PIC mikrokontroller

Inlägg av sodjan »

> Swech, trots PIC?, något speciellt dåligt med dom?

Det var ett skämt... :-)

> Jag kan ha läst fel...

"Kan" ? Dagens understatement... :-)

> Men jag avser INTRC

De nyare INTOSC i nyare modeller är ennu bättre än de äldre som kallades INTRC.

Hur som helst, eftersom det tydligen är hemligt vilken modell det gäller så blir det bara
spekulationer här. Varför kollar du inte bara upp det själv ? Det är ju enklast för alla...
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Division på PIC mikrokontroller

Inlägg av blueint »

Det är inte hemligt, jag har bara inte bestämt mig för vilken MCU jag skal lägga krut på.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Division på PIC mikrokontroller

Inlägg av sodjan »

Jahaja, ja då går det ju i alla fall inte att svara på.

Men ett tips är att välja en med INTOSC som är "factory calibrated" till 1%
och vanligstvs 2% över hela temp-skalan. Normalt är det samma som
även kallas "nanowatt"...
bearing
Inlägg: 11677
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Division på PIC mikrokontroller

Inlägg av bearing »

Siffran 86 är en tredjedel av 256, avrundat uppåt. De modeller du nämde har som sagts inte någon multiplikationsinstruktion, så på dem blir det nog ingen speciell vinst att välja mjukvarumultiplikation istället för mjukvarudivision.

Jag mätte klockfrekvensen på en modern Atmel ATMEGA och fick fram att frekvensen varierade 1-2% mellan att ligga under en het lampa eller att ha en ispåse ovanpå.
Skriv svar