L'essentiel d'Assembleur

Utiliser et configurer un timer

Testez gratuitement nos 1252 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Mettez en place une interruption sur le timer 0 et configurez ce timer de façon à obtenir la fonction de debounce ou anti-rebond.
04:41

Transcription

Dans cette vidéo, je vais vous expliquer ce qu'est un timer et comment on le configure. Alors quel est le rôle d'un timer ? Un timer est juste un compteur. Il s'incrémente sur des fronts montants ou descendants de signaux qu'ils soient internes ou externes au composant. Il fait partie des périphériques. Qu'est-ce qu'un périphérique ? Et bien, c'est juste un élément de traitement qui effectue une tâche sans prendre de temps d'instruction sur le cœur CPU et qui vient en fait créer une interruption en disant au CPU, voilà j'ai terminé mon travail, à toi de le traiter. Donc les timers sont utilisés dans 90% des cas. Alors, nous dans le composant qui nous intéresse, nous avons le timer0 où nous allons emprunter en fait le chemin fléché en mauve. Donc c'est-à-dire que nous allons compter des instructions CPU. C'est pour ça que nous avons F oscillateur par quatre, parce qu'il ne s'agit pas des périodes du quartz, mais des périodes instructions. Et puis à partir de là on va passer par un prescaler. Un prescaler c'est quoi en fait ? C'est juste un élément qui permet d'éviter de compter absolument toutes les impulsions. On peut en compter, une sur deux, une sur quatre, une sur huit enfin bref vous avez compris. Après le résultat est mis dans un registre particulier qui est TMR0, qui peut être aussi bien écrit que lu. En tout cas s'il déborde on a création d'une interruption. Alors comment nous allons procéder pour mettre en place cette interruption ? Donc pour la mettre en place nous allons aller dans le registre d'option, et puis nous allons donc choisir la source d’horloge. Si c'est une source d'horloge qui vient d’une pin extérieur notamment T0CKI et bien on va choisir son type de front. C'est un front montant par exemple. Nous allons choisir d'activer ou pas le prescaler. Alors avec un coefficient de division qui sera déterminé par les bits PS0 à PS2. Puis dans le registre INTCON nous mettrons GIE à 1, timer0 interrupt enable à 1 et le timer interrupt flag sera lui mis à zéro lorsque vous sortirez de la routine d'interruption sinon vous resterez bloqués dedans à l'infini. Et après vous avez donc le timer0 que vous pouvez précharger, et dans ce cas-là ça veut dire que vous écrasez la valeur que vous avez déjà compté et donc que vous n'en avez potentiellement plus besoin. Sinon après, c'est fini. Alors, le timer est arrivé à 255 puis à zéro, et là vous avez une interruption et vous venez vous connecter directement à l'adresse 4 en hexadécimal, où va être traitée en fait votre interruption. Alors maintenant, comment configurer au mieux notre timer ? Alors supposons que nous partons sur une base de 1 milliseconde. Donc une milliseconde c'est 1.000.000 de microsecondes. Nous avons dit qu'il nous fallait quatre périodes horloges pour obtenir une période instruction. Donc ici nous sommes avec un quartz de 4 MHz on le multiplie par quatre et il faut que le produit X fois Y nous fasse la valeur désirée. Et puis la valeur en fait qui va être préchargée, ce sera la valeur maximale, donc 256 que peut avoir timer0 moins la valeur initiale. Alors prenons un exemple. Alors directement sur une milliseconde si je ne mets pas de prescaler, ça veut dire que Y est à 1.000.000. Sur 8 bits ça va être un petit peu compliqué de pouvoir le coder. Donc ça ne passe pas. Ça ne passe pas tant que, on n’a pas un prédiviseur de 64. Si je divise par 64, en fait il me reste 15.625 qui vont être aussi prédivisés par 64. Et donc sur ces 64 il me reste quoi ? 244, 256 moins 244 égale 12. Donc vous pouvez faire le choix de le faire sur 128 ou 256, et ça vous donnera donc le même type de calcul. Donc par exemple ici 7.812 divisés par 128, il reste 61. Ce 61 vous le retranchez à 256 et vous allez précharger votre timer à 194.

L'essentiel d'Assembleur

Plongez-vous dans le langage bas niveau, nommé Assembleur. Abordez les notions de jeu d'instructions, de pipeline, de registres, de mode d’adressage, de compteur de programme, etc.

4h52 (57 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :26 sept. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !