Division på PIC mikrokontroller
- Swech
- EF Sponsor
- Inlägg: 4750
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Division på PIC mikrokontroller
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
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
Re: Division på PIC mikrokontroller
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!
Re: Division på PIC mikrokontroller
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.
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.
Re: Division på PIC mikrokontroller
> Den ska visst kunna variera upptill 50%.
Vad kan variera +/- 50% ??
Vad kan variera +/- 50% ??
Re: Division på PIC mikrokontroller
Säkert oscillatorfrekvensen han menar. Men varierar den verkligen så mycket, ens i värsta fall?
- Swech
- EF Sponsor
- Inlägg: 4750
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Division på PIC mikrokontroller
Den varierar INTE 50% trots att du talar om PIC
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

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
Re: Division på PIC mikrokontroller
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...
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...

Re: Division på PIC mikrokontroller
Mmm. Det borde snarare handla om max 5-10% utan kalibrering och ännu bättre med kalibrering.
- Swech
- EF Sponsor
- Inlägg: 4750
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Division på PIC mikrokontroller
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
(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
Re: Division på PIC mikrokontroller
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?
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?

Re: Division på PIC mikrokontroller
> 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...
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...
Re: Division på PIC mikrokontroller
Det är inte hemligt, jag har bara inte bestämt mig för vilken MCU jag skal lägga krut på.
Re: Division på PIC mikrokontroller
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"...
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"...
Re: Division på PIC mikrokontroller
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å.
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å.