PIC 12F683 TMR0 prescaler tappar 1 klocka?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7466
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

PIC 12F683 TMR0 prescaler tappar 1 klocka?

Inlägg av Marta »

I ett program som använder TMR0 till att mäta en pulslängd stämmer inte verklighet och teori överens, eller så har jag missat något...

Använder INTOSC satt till 8 MHz och TMR0 prescaler satt till /8. Förväntade mig då 8 / 4 / 8 MHz in till timern = 4µs per steg. Det verkliga resultatet blir att denna tid istället är 4.5µs... Programmet skriver aldrig till timern, den läses endast.

Kan det vara så att prescalern tappar 1 klocka för varje "varv"? Resultatet blir ju exakt som om den delade med 9 istället för 8. Någon här som vet?

Har givetvis senaste datablad och errata samt försökt googla detta, men inget resultat...
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: PIC 12F683 TMR0 prescaler tappar 1 klocka?

Inlägg av Micke_s »

Behöver man ladda in kalibrering för INTOSC. Mata ut intosc direkt ioch mät...
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7466
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: PIC 12F683 TMR0 prescaler tappar 1 klocka?

Inlägg av Marta »

Två chip ger identiskt resultat, så jag tvivlar starkt på att det är INTOSC som är fel. Det skulle dessutom krävas ett stort fel från 8 til 7.1111... MHz för att förklara felet. Kommer det ingen lösning innan så får jag flytta skopet dit den här saken finns i morgon och kontrollera INTOSC för att vara helt säker.

Har ett svagt minne av att något liknande varit uppe till diskussion här tidigare, men kan dessvärre inte hitta den tråden nu.
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: PIC 12F683 TMR0 prescaler tappar 1 klocka?

Inlägg av lillahuset »

Hur mäter du pulslängden? Varför misstänker du timern?
Användarvisningsbild
Marta
EF Sponsor
Inlägg: 7466
Blev medlem: 30 mars 2005, 01:19:59
Ort: Landskrona
Kontakt:

Re: PIC 12F683 TMR0 prescaler tappar 1 klocka?

Inlägg av Marta »

Problemet är löst nu, jag hade stoppat in blaj i OSCCON :oops: :oops: :oops:

Klippte initieringen från en tidigare kod som fungerade helt OK, givetvis utan att vara tillräckligt uppmärksam. Satte configword till 8MHz utan att tänka på OSCCON som satte den till 4MHz. När en liten ändring sedan skall mätas med en räknare som är tänkt att gå flera varv på en måtning är det lätt att dra fel slutsats när grundvärdet stämde med just 8+1 pulsers prescaler. Märkte sedan att inget alls stämde, läste igenom hela init och upptäckte misstaget...

Ber om ursäkt för detta. Jag börjar bli gammal och tappar skärpan. Snart dags att sluta programmera och börja sy korsstygn istället...
Användarvisningsbild
lillahuset
Gått bort
Inlägg: 13969
Blev medlem: 3 juli 2008, 08:13:14
Ort: Norrköping

Re: PIC 12F683 TMR0 prescaler tappar 1 klocka?

Inlägg av lillahuset »

Liknande har nog hänt alla som har skrivit icketriviala program. :)
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Re: PIC 12F683 TMR0 prescaler tappar 1 klocka?

Inlägg av Micke_s »

Aja, det viktiga är att problemet hittades...
Skriv svar