Bonjour,
Je travaille sur un Atmega8 et j’essaie de calculer a l’aide du Timer1 le temps qu’un bouton poussoir est appuyé mais je n'arrive pas a le faire est ce que quelqu'un pourrait m'aider.
Merci d'avance
Bonjour,
Je travaille sur un Atmega8 et j’essaie de calculer a l’aide du Timer1 le temps qu’un bouton poussoir est appuyé mais je n'arrive pas a le faire est ce que quelqu'un pourrait m'aider.
Merci d'avance
Salut,
Je ne connais pas ton micro mais il y a plusieurs manières de faire :
L'une d'elle est d'utiliser l'entrée de capture de ton TIMER1, c'est un réglage a faire pour que le TIMER1 démarre sur un changement d'état d'une entrée (un front).
- - Le principe c'est donc de configurer le TIMER1 pour qu'il déclenche sur le front montant d'une broche (où sera l'interrupteur.)
- - Créer une fonction d'interruption associé au flag de déclenchement sur le front montant car tu auras des trucs à y faire.
- - Dès que le micro verra le front, la valeur du TIMER1 (qui tourne indéfiniment) va être copié dans un registre (à voir le quel) et le programme principal va se retrouver dans la fonction d'interruption.
- - Une fois dans le programme d'interruption tu stockeras dans une variable la valeur du registre de copie (à voir le quel, le même que juste au dessus) puis tu reconfigures le TIMER1 pour qu'il déclenche sur le front descendant de la broche où est l'interrupteur.
- - Dès qu'il y aura un front descendant, la valeur du TIMER1 (qui tourne indéfiniment) va être copié dans un registre (à voir le quel mais c'est encore le même que juste au dessus)
- - Tu fais : la valeur du registre de copie (qui contient la valeur du Timer au front descendant) - la valeur dans la variable (et qui contient la valeur du Timer au front montant lorsque tu l'avais sauvegardé)
Maintenant il faut lire la datasheet, chapitre Timer1 pour voir ce qu'il permet de faire. Je ne connais pas tous les micros et il se peut que ton micro ait des fonctionnalités qui font ça tout seul ! J'en doute mais on ne sait jamais ou peut être qu'une partie de ce que j'ai écrit au dessus soit déjà implémenté ? Faut voir, faut lire.
Partager