L'essentiel d'Assembleur

Configurer le périphérique MLI à rapport cyclique variable

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Vous allez générer une PWM avec un rapport cyclique variable. Ce rapport sera à l'image de la tension issue d'un potentiomètre, mais avec une fréquence fixe.
05:58

Transcription

Dans cette vidéo, je vais vous montrer comment modifier le rapport cyclique de notre PWM. Alors depuis une conversion analogique-numérique. Pour cela, nous allons mettre en place notre conversion et puis nous allons rien changer comparé au lap précédent concernant donc notre PWM à savoir toujours le faire sur CCP4. Alors en fait que va-t-il se passer ? Nous allons configurer notre ADC sur interruption pour pouvoir stocker l'octet de poids fort dans une variable qu'on appellera resultat_ADC_H. La justification se fera à gauche et non plus à droite contrairement à la fois précédente. Alors pourquoi simplement cette fois-ci, on pourra transférer l'octet de poids fort directement dans CCPR4L. Par contre, concernant les deux bits de poids faible, nous les passerons sous silence, mais normalement la bienveillance voudrait que ces deux bits soient transférés ici pour permettre une meilleure précision de notre PWM, donc dans le registre CCP4CON avec les deux bits DC4B. Mais pour obtenir ça, c'est dire au programme puisqu'il faut effectuer un masquage et après un décalage de ces bits. Alors, ici pour l'instant ça fonctionnera très bien comme ceci. Donc comme nous là juste pour énumérer un principe, qu'allons-nous faire ? Le programme principal va scruter en permanence le canal AN0. Lorsque la conversion analogique-numérique est terminée, on va déclencher une interruption, et une fois que cette interruption aura lieu, dans cette interruption, nous irons transvaser ADRESH dans CCPR4L. Le reste ne changera pas comparé au lap précédent, nous restons à une fréquence d'un kilo hertz. Ce qui nous permet de rester sur le Timer2 avec un prescaler de 64 et un PR2 de 255 Donc coté programme, si on regarde et on prend dans l'ordre vraiment séquentiel comme le microcontrôleur pourrait le faire, on regarde donc en Access RAM, j'ai placé deux variables : une pour recevoir l'octet de poids fort et un décompteur. Le décompteur qui va nous permettre lui de créer une temporisation, donc des trompes de microseconde nécessaires entre deux acquisitions. Alors ici, nous partons directement à l'étiquette START. On passe sous silence notre outil d'interruption. Et là qu'allons-nous faire, dejà on autorise toutes les interruptions. Et cette fois-ci, nous allons autoriser bitsf les interruptions périphériques. Pourquoi ? Parce que l'interruption sur la fin d'une conversion analogique-numérique est considérée comme une interruption périphérique. Donc une fois qu'on est rentré en fait dans les périphériques, il faut autoriser à son tour donc la conversion analogique-numérique. Donc voilà concernant ce système un petit peu de configuration des interruptions. Nous allons donc sélectionner ADCON0, notre canal AN0 et nous restons dans les mêmes conditions que précédemment ce qui nous amène au mot binaire qui sait que nous allons mettre directement dans ADCON0. Pour ADCON1, nous restons sur l’oscillateur sur 32 avec des références qui sont sur VSS et VDD, pas de soucis. Mais cette fois-ci, nous aurons une justification qui sera inversée comparée au lap précédent. Ce qui nous amène directement à ce mot binaire que nous allons mettre à l'intérieur de ADCON1. Concernant la PWM, rien ne change, donc je passe. Et nous allons arriver cette fois-ci à ce qui va changer un peu à savoir ici donc dans ANSELA, il va falloir mettre notre broche RA0 en AN0. Pour cela, je fais bitsf et puis j'applique en fait un 1 sur le bit ANSA0 de ANSELA. Donc après pour le reste, rien ne change. Pour le programme principal, je tourne en boucle et j'effectue ma conversion analogique-numérique. Donc j'appelle quand même ma temporisation entre les deux parce que sinon le convertisseur ne va pas aimer et ça j'avais expliqué donc lors de la mise en œuvre des convertisseurs analogique-numériques le pourquoi du comment. Donc à partir d'ici, on n'effectue que des conversions. Quand la conversion est terminée que se passe-t-il ? On va se brancher directement au niveau de notre interruption. Alors je dois tout remonter et nous voici ici. Donc on fait les tests routiniers maintenant, on voit si l'interruption est autorisée, si c'est vrai, dans ce cas-là, je passe au test suivant. Si c'est faux, je sors. Et là, je vois si l'interruption a lieu. Si c'est vrai, je passe ici si c'est faux, je sors. Et lorsque c'est vrai, je fais quoi ? Je transvase directement ADRESH dans CCPR4L. Et surtout avant de sortir, là, je viens bien mettre à zéro mon flag d'interruption. Donc voilà un peu comment tout se passe à l'intérieur donc regardons maintenant le résultat au niveau de notre simulation. Donc nous sommes toujours à 4 mégahertz, j'ai déjà chargé le fichier à l'intérieur. Donc vous voyez nous sommes là par exemple à 2,3 volts. Puis plus j'augmente ma tension, plus mon rapport cyclique augmente et inversement. Je peux agir sur mon rapport cyclique en agissant directement sur mon potentiomètre.

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 !