Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
fr:examples:timer:periodic_interrupt [2010/03/09 15:01] – créée sdeniaudfr:examples:timer:periodic_interrupt [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 13: Line 13:
 Le programme suivant montre comment initialiser un compteur pour utiliser une interruption. On utilisera deux LEDs du module numérique dans le programme, l'état de la LED rouge est inversé périodiquement avec une temporisation matérielle, quant à la LED verte son état est inversé en utilisant une interruption. Il existe un autre exercice concernant l'utilisation de la temporisation, nous n'en parlerons donc pas ici. L'objectif principal est d'expliquer l'utilisation de la librairie des compteurs et interruptions. Le programme suivant montre comment initialiser un compteur pour utiliser une interruption. On utilisera deux LEDs du module numérique dans le programme, l'état de la LED rouge est inversé périodiquement avec une temporisation matérielle, quant à la LED verte son état est inversé en utilisant une interruption. Il existe un autre exercice concernant l'utilisation de la temporisation, nous n'en parlerons donc pas ici. L'objectif principal est d'expliquer l'utilisation de la librairie des compteurs et interruptions.
  
-Au départ, le compteur 16-bits est initialisé grâce à la fonction ''timer1_init_ctc'' Avec cette fonction, le compteur CTC //clear timer on compare match// est initialisé dans le mode où la valeur maximal n'est pas 216 – 1 mais peut être sélectionnée. Dans ce cas la valeur maximale est égale à la valeur de l'index ICR1. Le diviseur du compteur est de 1024 et la valeur de ICR1 est 14400, donc quand la fréquence de l'horloge est de 14,7456 MHz, la période est égale à une seconde. Il est facile de la calculer avec la formule suivante:+Au départ, le compteur 16-bits est initialisé grâce à la fonction ''timer1_init_ctc'' Avec cette fonction, le compteur CTC //clear timer on compare match// est initialisé dans le mode où la valeur maximale n'est pas 216 – 1 mais peut être sélectionnée. Dans ce cas la valeur maximale est égale à la valeur de l'index ICR1. Le diviseur du compteur est de 1024 et la valeur de ICR1 est 14400, donc quand la fréquence de l'horloge est de 14,7456 MHz, la période est égale à une seconde. Il est facile de la calculer avec la formule suivante:
  
 f = 14745600 Hz / 1024 / 14400 = 1  f = 14745600 Hz / 1024 / 14400 = 1 
fr/examples/timer/periodic_interrupt.1268146892.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0