Cours:TPS XR207 tpTimer

De troyesGEII
Aller à : navigation, rechercher
Retour à la liste des Tps

Éléments de correction

Nous allons dans ce TP nous pencher sur l'utilisation des timers, notamment pour générer un signal, ceci en utilisant le moins possible les ressources du µcontrôleur.

ArduinoPinout.png

Comment générer un signal périodique

Nous allons dans cette partie comparer les 2 principales méthodes pour générer un signal périodique.

Dans toute cette partie, nous considérerons une sortie périodique telle que :

  • le signal est carré (2 états '0' ou '1')
  • de fréquence 1kHz
  • de rapport cyclique 1/2
  • sortie sur la patte PB3

avec une attente .... méthode basique !

Commençons tout simplement par utiliser une attente, comme nous l'avons fait dans le tp précédent.

Il suffit tout bonnement de configurer correctement la valeur d'attente.

Remarquons que pour plus de précision, il est possible d'utiliser la fonction _delay_us(xxx), dont le nom est suffisamment explicite pour se passer d'une description !

Question.jpg Écrire un programme générant le signal souhaité, et le visualiser avec un oscilloscope.


#include <util/delay.h>

int main()
{
   // configuration e/s

   while(1)                // boucle
   {
      // modification de la sortie

      // attente
      _dela.....
   }
}

Remarque : Comme expliqué en TD, cette méthode fonctionne mais entraîne une occupation à 100% du processeur, qui ne peut donc réaliser que cette action !


=> méthode en utilisant un delay

=> usage du timer mode comparaison avec interruption

=> sortie directe du timer sur patte

=> buzzer

=> mélodie

=> changer les notes avec 2ème timer