Étape 15 : Mise en place du PWM
Sub initPins(void)
{
//---------------------------------------------------------------------
Paramètres de TCCR2A
//---------------------------------------------------------------------
Ces bits contrôlent le comportement de pin (OC2A) sortie comparer. Si l’un ou
les deux COM2A1:0 bits sont définis, remplacements de sortie de l’OC2A la
fonctionnalité de port normal de la goupille de I/O, il est connecté à.
Toutefois, Notez que le registre de Direction de données (DDR) peu
correspondant à l’axe de OC2A doit être définie afin de permettre la
pilote de sortie.
Quand OC2A est connecté à la broche, la fonction des bits COM2A1:0
dépend de la WGM22:0 bits définissant.
//
Mode PWM rapide
COM2A1 COM2A0
0 0 opération de port normal, OC2A déconnecté.
1 0 WGM22 = 0: opération de Port Normal, OC0A déconnecté.
WGM22 = 1: activer/désactiver OC2A sur Match de comparer.
1 0 OC2A clair sur comparer Match, défini OC2A en bas
1 1 OC2A effacer sur comparer Match, désactivez OC2A à fond
CBI(TCCR2A,COM2A1) ;
CBI(TCCR2A,COM2A0) ;
SBI(TCCR2A,COM2B1) ;
CBI(TCCR2A,COM2B0) ;Combiné avec le bit WGM22 dans le registre des TCCR2B, ces bits
contrôler l’ordre de comptage du compteur, la source pour maximum
Valeur du compteur (en haut), et quel type de génération de signaux à utiliser
Modes d’exploitation pris en charge par l’unité de Timer/compteur sont :
-Mode normal (compteur),
-Minuterie claire le mode Match comparer (CTC),
-deux modes de Modulation de largeur d’impulsion (PWM).
//
Fonctionnement en mode WGM22 WGM21 WGM20 TOP
0 0 0 0 Normal 0xFF
1 0 0 1 PWM 0XFF
2 0 1 0 CCT OCRA
3 0 1 1 rapide PWM 0xFF
4 1 0 0 réservé -
5 1 0 1 PWM OCRA
6 1 1 0 réservé -
7 1 1 1 rapide OCRA PWM
CBI(TCCR2B,WGM22) ;
SBI(TCCR2A,WGM21) ;
SBI(TCCR2A,WGM20) ;
//---------------------------------------------------------------------
Paramètres de TCCR2B
//---------------------------------------------------------------------
Le bit FOC2A n’est actif que lorsque les bits WGM spécifient un non-PWM
mode.
Toutefois, pour assurer la compatibilité avec les futurs appareils, ce bit
doivent être remises à zéro quand TCCR2B est écrit lors du fonctionnement en PWM
mode. Lorsque vous écrivez une logique pour le bit FOC2A, une immédiate
Comparer les Match est forcé sur l’unité de production de forme d’onde. Le OC2A
sortie est modifiée selon ses bits de COM2A1:0 réglage. Notez que
le bit FOC2A est implémenté comme un stroboscope. C’est donc la valeur
présent dans les bits de COM2A1:0 qui détermine l’effet de la
Comparez forcé.
Un stroboscope FOC2A ne générera pas de toute interruption, ni il efface
la minuterie en mode CTC en utilisant OCR2A comme dessus.
Le bit FOC2A est toujours lu comme zéro.
CBI(TCCR2B,FOC2A) ;
CBI(TCCR2B,FOC2B) ;
Les trois bits horloge sélectionnez choisir la source d’horloge pour être utilisé par
le Timer/compteur.
CS22 CS21 CS20 Prédiviseur
0 0 0 aucune source d’horloge (Timer/compteur arrêté).
0 0 1 ne prescaling
0 1 0 8
0 1 1 32
1 0 0 64
1 0 1 128
1 1 0 256
1 1 1 1024
CBI(TCCR2B,CS22) ;
CBI(TCCR2B,CS21) ;
SBI(TCCR2B,CS20) ;
pinMode (errorPin, sortie) ;
pinMode (thresholdPin, sortie) ;
analogWrite (thresholdPin, 127) ;
}