Bonjour,
Je suis un étudiant en informatique pas spécialement calé en électronique et je développe dans le cadre de mon travail un prototype basé sur un PIC18 qui doit avoir les deux caractéristiques suivantes.
- Très faible consommation
- RTC
Dans cette optique, j'utilise une horloge externe à 32768hz (quartz sur Timer1) avec des interruptions asynchrones. Je charge le registre TMR1H à 0xF0 afin d'obtenir 8 interruptions par seconde (le proto se doit d'être réactif à des entrées brèves).
Le timer1 est également la source de mon horloge système pour minimiser la consommation d'énergie et je tourne bien entendu en sleep mode.
Mon problème est que j'observe une dérive très importante (de l'ordre d'une minute par jour). Je pense que le problème vient du fait que mon processeur est trop lent pour traiter l'interruption en 15,25us et que l'erreur cumulée induit une dérive comme décrit dans http://ww1.microchip.com/downloads/e...Doc/80329a.pdf
Je ne comprends cependant pas bien comment implémenter la solution proposée dans l'errata (je programme en C avec la librairie HITECH) et de plus je m'interroge sur la faisabilité d'une RTC sans dérive si le processeur travaille à la même vitesse que la clock... Ne vas-t-on pas nécessairement laisser filer des coups de clock durant le traitement de l'interruption?
Est-ce que quelqu'un pourrait m'éclairer quand à la démarche adéquate à adopter pour résoudre ce problème?
Merci d'avance!
-----