Sida 1 av 1
PIC 12F683 TMR0 prescaler tappar 1 klocka?
Postat: 29 januari 2016, 11:39:02
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...
Re: PIC 12F683 TMR0 prescaler tappar 1 klocka?
Postat: 29 januari 2016, 21:57:18
av Micke_s
Behöver man ladda in kalibrering för INTOSC. Mata ut intosc direkt ioch mät...
Re: PIC 12F683 TMR0 prescaler tappar 1 klocka?
Postat: 29 januari 2016, 23:38:06
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.
Re: PIC 12F683 TMR0 prescaler tappar 1 klocka?
Postat: 30 januari 2016, 11:33:47
av lillahuset
Hur mäter du pulslängden? Varför misstänker du timern?
Re: PIC 12F683 TMR0 prescaler tappar 1 klocka?
Postat: 30 januari 2016, 16:59:40
av Marta
Problemet är löst nu, jag hade stoppat in blaj i OSCCON
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...
Re: PIC 12F683 TMR0 prescaler tappar 1 klocka?
Postat: 30 januari 2016, 17:15:09
av lillahuset
Liknande har nog hänt alla som har skrivit icketriviala program.

Re: PIC 12F683 TMR0 prescaler tappar 1 klocka?
Postat: 30 januari 2016, 22:46:29
av Micke_s
Aja, det viktiga är att problemet hittades...