Étape 3: Mettre en place le PWM sur la MCU
Dans la vidéo, on parle de deux niveaux utilisés par le module timer/compteur : la valeur et la valeur de comparaison. Ces deux sont importantes pour générer le signal PWM souhaitée.
Mais pour activer la sortie PWM de votre ATmega168 en premier lieu, nous devons mettre en place quelques registres. Tout d’abord, nous avons sélectionnez mode Fast PWM OCR1A comme valeur supérieure, qui nous permet de définir arbitrairement la fréquence de commencer une nouvelle impulsion.
Ensuite, nous régler l’horloge à courir avec une division préalable de 8, ce qui signifie que le compteur augmente de 1 chaque /(14745600 Hz) 8 = 542 nanosecondes. Puisque nous avons des registres 16 bits pour cette minuterie, cela signifie que nous pouvons mettre notre global période de signal à être aussi élevé que 65536 * 542ns = 36 millisecondes. Si nous utilisions un plus grand nombre de division, nous pourrions faire nos impulsions plus loin dehors (qui n’aide pas dans cette situation), et nous perdrions la résolution. Si nous avons utilisé un plus petit nombre de division (par exemple 1), nous ne serions en mesure de faire nos impulsions au moins 16 millisecondes à part, comme notre servo attend.
Enfin, nous définir le mode de sortie comparer pour un PWM « non inversé », qui est décrite dans notre vidéo de sortie. Nous avons également mis à la broche PB2 à une broche de sortie--non illustrée ici, mais c’est dans le code.
Cliquez pour agrandir ces photos de pages 132-134 de la feuille de données ATmega168, avec nos sélections de valeur de registre a mis en évidence :