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