Microcontrôleur séance 2

Les interruptions

Le cours du jour

TD2

Vous aurez besoin :

Exercice 1 : une interruption interne le Timer

Faites clignoter la led avec le Timer1

N'hésitez pas à utiliser les explications de Dean Camera

Vous pouvez trouver un exemple ici

Exercice 2 : une interruption externe Int0

Faites changer d'état la led lorsque l'on appuie sur un interrupteur connecté sur Int0

Rappelez-vous que vous avez le schéma de correspondance des pins Atmel et Arduino

Voici un lien explicitant l'utilisation de cette interruption

Exercice 3 : gestion de l'alimentation

A la mise sous tension le processeur allume la led pendant approximativement 5 secondes. Puis le processeur se met hors tension et recommencera le cycle lors de l'appui sur l'interrupteur mis sur int0.

Je n'ai pas trouvé d'explication convaincante pour la gestion de l'alimentation, mais voici la page de code qui permet d'agir.

Les modes d'assoupissement sont :

SLEEP_MODE_IDLE

SLEEP_MODE_ADC

SLEEP_MODE_PWR_DOWN

SLEEP_MODE_PWR_SAVE

SLEEP_MODE_STANDBY

SLEEP_MODE_EXT_STANDBY

Leur effet est explicité dans la documentation du processeur :SLEEP_MODE_PWR_SAVE nous ira très bien.

Exercice 4 : USART les communications

Utilisez l'USART pour lire les caractères arrivant du clavier et les transmettre afin qu'ils s'affichent sur le terminal.

Faites-le en 2 temps :

  • en testant le bit de l'Usart vous permettant de savoir qu'un caractère est en attente. Faites clignoter la led à chaque réception.
  • faites un autre programme en utilisant les interruptions. Puisque la boucle principale ne fait rien autant faire clignoter la les à 100 ms.

N'hésitez pas à utiliser les explications de Dean Camera, attention son processeur est différent, consultez la documentation du 328 pour adapter le programme.

Une explication des paramètres de la transmission série