Étape 1: Module PWM PIC et minuteries
Nous sera exploité ce PIC @ oscillateur 20MHz. Ce tutoriel est pour ceux qui a telles oscillateurs très élevés qui est la manière standard d’utilisation de microcontrôleurs. Toutefois, vous pouvez utiliser la façon simple (CCP comme PWM) si vous avez un oscillateur très lent comme 32kHz, parce qu’alors timer2 peut atteindre 50 Hz directement sans avoir besoin de ce que nous allons expliquer ici.
Microcontrôleurs PIC ont quelque chose appelé module CCP qui est le module de Capture-comparer-PWM, ce qui signifie, vous pouvez configurer pour fonctionner comme l’un de ces 3. D’application typique, nous devrions configurez toujours qu’il s’agit de PWM (c’est la façon simple que nous devons utiliser par défaut).
Lorsqu’il est configuré comme PWM, il utilise le Timer2 comme un module de synchronisation afin de calculer son Ton et Toff. Alors, comment pouvons-nous déterminer toutes les valeurs nécessaires pour atteindre notre propre fréquence requise ?
Équations de la minuterie :
[1] F_timer = F_crystal / (4 * Prédiviseur * résolution)
[2] Period_timer = 1 / F_timer
[3] N = (t * F_crystal) / (4 * Prédiviseur)
Équation 1 calcule la fréquence de l’horloge. Nous l’utiliserons pour déterminer la fréquence la plus basse possible qui peut produire de la minuterie. Si elle est inférieure à 50Hz, alors nous pouvons générer 50Hz ou nous allons trouver une autre façon.
Équation 2 est évidente, ce qui correspond à la période de cette fréquence.
Équation 3 indique le nombre de « graduations » qui coche la minuterie jusqu'à ce qu’il atteigne le temps « t » que nous voulons, conformément aux paramètres que nous avons spécifié comme diviseur et fréquence de cristal.
Le module CCP1 lorsqu’il est utilisé comme PWM utilise timer2 et cette timer2 est une minuterie de 8 bits. Ce qui signifie, sa résolution est de 2 ^ 8 = 256. Il propose des valeurs diviseur jusqu'à 16 et ce Prédiviseur est une fonctionnalité de minuteries qui leur permet de diviser la fréquence d’entrée alimenté en eux afin d’atteindre des fréquences plus basses.
Donc le plus bas jamais timer2 fréquence peut traiter (en supposant qu’oscillateur à quartz 20MHz) = 20000000 / (4 * 16 * 256) = 1220,7 Hz (environ 81,9 nous période). Donc nous ne pouvons pas obtenir le 50 Hz signal que nous voulions en utilisant cette minuterie avec CCP1 PWM.
Qu’en est-il de timer1 ? Il a une valeur maximale de diviseur de 8 et une résolution de 16 bits = 65536 parce que c’est un temporisateur de 16 bits.
Fréquence la plus basse timer1 = 20000000 / (4 * 8 * 65536) = 9,53 Hz. (période de 104,9 ms environ)
Si nous concluons que timer1 peut être utilisé pour générer le signal 50 Hz car il peut générer des basses fréquences jusqu'à 9,53 Hz et nos 50 est juste tellement atteignables !
Q: Ok ! Connectez-le au module CCP en mode PWM!!!
R: non, CCP comme PWM seules utilisations timer2 module... vous devrez trouver un autre moyen.
Qu'est-ce que c'est?!