Daarin moet ik je dan toch gelijk geven. Ik was dus mis, alweer bijgeleerd. Ik denk dat ik dan met een 2de kristal zal werken en deze dan intern te delen door de prescaler en softwarematig te delen (mbv een teller)
Op 29 augustus 2010 22:31:00 schreef SparkyGSX:
Waarom zou je in vredesnaam nog een kristal van 32.767Hz willen? Dat was alleen handig in de tijd dat de deling nog met eenvoudige hardware gedaan moest worden.
Waarom zou je de cycles van een 32.767kHz (of 3.2768MHz) nauwkeuriger kunnen tellen dan die van een 20MHz kristal? Ook een seconde is een arbitraire eenheid, je kunt in elke andere eenheid tellen (en dus je eigen "seconde" definiëren), en die omzetten naar uren/minuten/seconden zodra je de tijd in dat formaat nodig hebt. Een afrondingsfout of meetfout heb je altijd, in welke eenheid je ook telt.
Omdat je met de prescaler op 256 ingesteld dan een kloksignaal van 25.6Khz hebt en met de timer overflow terug deelt door 256 kom je perfect aan kloksignaal van 100HZ uit. Als ik in de het programma dan deel door 100 kom ik perfect 1HZ uit.
Als ik een kristal van 20MHz neem, kom ik niet perfect uit en ald ik die dan deel met de prescaler en de timer overflow moet ik dat signaal dan delen door 783,20802005012531328320802005013 om perfect 1 Hz uit te komen. Delen met een kommagetal zal ik toch niet echt doen met een pic.
Bij het nader bekijken van timer0 module kan men zien dat de hoofdfrequentie (afkomstig van de pic's oscillator) eerst gedeeld wordt door 4. Dit betekent dat ik de prescaler op 1:128 moet instellen. Timer module0 zal dus een frequentie geven van 6.4kHz. De timer0 overflow (interrupt) zal me dan een kloksignaal geven van 25Hz. Deze moet ik dan nog eens softwarematig delen (m.b.v. een teller) door 25 om een 1Hz kloksignaal te krijgen.
De interrupts zullen dus in het programma 25 keer per seconde uitgevoerd worden.
Ik denk als ik timer1 gebruik dat ik veel meet interrupts zal krijgen dan dat ik timer0 gebruik. Of ben ik verkeerd?
Ik wil alvast iedereen bedanken voor de snelle hulp.
[Bericht gewijzigd door
Henry S.
op maandag 30 augustus 2010 17:50:06
(84%)