[5] Programmation PIC en C : Gestion du temps / Timers

Поделиться
HTML-код
  • Опубликовано: 6 фев 2025
  • pbelectronique...
    Gérer le temps avec un micro-contrôleur peut sembler complexe, mais une fois que l'on connais les techniques, la gestion du temps devient très utile pour plusieurs projets!
    Pour gérer le temps avec un micro-contrôleur PIC, il existe différentes techniques logicielles et vous avez aussi la possibilité d'utiliser les timer internes qui se trouve dans votre micro-contrôleur.
    Techniques logicielles:
    Lorsque l'on parle de délais, en fait, on veut faire perdre du temps à notre programme afin de le ralentir et de voir les lumière clignoter par exemple. Donc, pour perdre du temps, on peut utiliser la structure while qui va compter une variable jusqu'à un certain nombre afin de ralentir le programme. On peut l'écrire comme suit:
    Ainsi, la variable compteur va incrémenter 20 000 fois avant de passer à la prochaine instruction. L'autre structure de programmation qui peut faire le même travail est le for. Pour faire le même travail que le while, on peut l'écrire comme suit:
    Avec ces deux techniques, vous pouvez faire perdre du temps à votre programme pour en faire des délais. La problématique avec ce genre de gestion du temps, c'est que le temps perdu est d'une durée inconnu (on peut la mesurer avec le simulateur) et elle fait perdre beaucoup de temps à votre programme! Ce n'est pas recommandé d'utiliser ce genre de structure pour créer des délais à moins que vous n'avez pas le choix.
    Une autre technique pour créer des délais est d'utiliser la librairie dans MikroC PRO. Cette librairie est déjà installé avec le compilateur et vous permet de créer des délais facilement et avec une très bonne précision. Ces délais utilisent la fréquence de votre crystal choisi pour baser sa temporisation. Pour l'utiliser, il vous suffit d'inscrire le nom de la fonction et le temps que vous voulez. Il existe deux fonctions préprogrammées. Une qui fait des délais en microsecondes et l'autre en milliseconde.
    Pour faire clignoter une LED, cette technique peut être vraiment efficace puisque c'est simple d'utilisation et c'est très précis. Encore là, si vous faite un système de contrôle très rapide, il faut éviter ce genre de fonction puisque le programme bloque sur cette partie pendant un certain moment.
    Finalement, une technique qui mérite d'être connue et bien maîtrisée est celle qui utilise les timer interne. Tout d'abord, il faut savoir qu'il peut y avoir plusieurs timer dans un seul micro-contrôleur. Aussi, les timer peuvent être conçu de différentes façon. Il y a des timer 8-bit, 16-bit et même plus! Les timer interne des micro-contrôleurs PIC peuvent être contrôler avec avec seulement 2 à 3 registres tout dépendant du PIC choisi. Pour le PIC16F84A, il y a un seul timer et c'est le timer0. Ce timer est de 8-bit, donc il compte jusqu'à 256. Les registres à mettre à jour pour ce PIC sont OPTION_REG et INTCON.
    Les bits importants pour le registre OPTION_REG sont T0CS,PSA,PS2,PS1 et PS0. Dans notre cas, on utilise un crystal, donc on met le bit T0CS à 0. On va mettre PSA à 1 et les autres PSx "PS2,PS1,PS0" à 0 pour utiliser la fréquence de notre crystal.
    Pour le registre INTCON, les bit importants sont GIE,T0IE et T0IF. Le bit GIE doit être mis à 1 pour activer tout les interruptions du micro-contrôleur et le bit T0IE doit aussi être à 1 pour activer l'interruption créer par l'overflow du timer0. Finalement, dans la routine d'interruption, il faudra tester si le bit T0IF est à 1, dans ce cas, il y a un overflow du timer0.

Комментарии • 13