My Project
|
Premier TD pour le CESI. More...
#include "lib_io_tp.h"
Functions | |
void | setup () |
Initialisation des périphériques et des variables globales. More... | |
void | loop () |
La fonction loop doit appeler une seule fonction exo... à la fois, vous devez conserver le code de tous les exercices mais n'en utiliser qu'un à la fois. More... | |
void | exo1 () |
Exercice 1: Vous devez piloter le port de sortie en recopiant l'état du port entrée et afficher sur la console série en héxadécimal la valeur lue sur le port d'entrée Utilisez les fonctions void SetupES(void); unsigned char readPort(void); et void writePort(unsigned char value); de lib_io_tp.h Configurez et utiliser l'interface de communication Série/USB https://www.arduino.cc/reference/en/language/functions/communication/serial https://www.arduino.cc/reference/en/language/functions/communication/serial/print/ https://www.arduino.cc/reference/en/language/functions/communication/serial/println/. More... | |
void | exo2 () |
Exercice 2: Vous devez piloter le port de sortie en recopiant l'entrée 7 sur la sortie dont le numéro est défini par entree(2..0) More... | |
void | exo3 () |
Exercice 3: Vous devez piloter le port de sortie pour réaliser le transcodage de la valeur 4 bits lues sur entrée(3..0) vers les 7 bits du port de sortie (6..0) en utilisant le tableau tab fourni, puis ajouter le pilotage de la sortie 7 avec l'entrée 7. More... | |
void | exo4 () |
Exercice 4: Vous devez configurer les entrées sorties numériques de l'arduino numéro BUTTONPIN et LEDPIN, puis effectuer la recopie de l'entrée BUTTONPIN sur la sortie LEDPIN en boucle. https://www.arduino.cc/reference/en/language/functions/digital-io/pinmode/ https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/ https://www.arduino.cc/reference/en/language/functions/digital-io/digitalwrite/. More... | |
void | exo5 () |
Exercice 5: Vous devez configurer l'entrée analogique A0 puis effectuer la commande du port de sortie pour qu'une seule LED s'allume à la position approximative du potentiomètre. https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/. More... | |
void | exo6 () |
Exercice 6: Vous devez configurer l'entrée analogique A0 puis effectuer la commande de la LED connecté à la sortie LEDPIN afin qu'elle clignote à une fréquence pilotée par le potentiomètre. La commande de la durée des états hauts et bas de la sortie LEDPIN sera gérée à l'aide d'une fonction d'attente bloquante delay: https://www.arduino.cc/reference/en/language/functions/time/delay/. More... | |
void | exo7 () |
Exercice 7: Vous devez configurer l'entrée analogique A0 puis effectuer la commande de la LED connecté à la sortie LEDPIN afin qu'elle clignote avec un rapport cyclique piloté par le potentiomètre. La commande de la durée des états hauts et bas de la sortie LEDPIN sera cette fois ci gérée à l'aide d'une sortie PWM (la broche LEDPIN est compatible PWM) à l'aide de la fonction analogWrite() : https://www.arduino.cc/reference/en/language/functions/analog-io/analogwrite/. More... | |
void | exo8 () |
Exercice 8: Vous devez combiner les exercices 1 et 6 en utilisant une durée de 2 secondes pour les états hauts et bas du signal pilotant la sortie LEDPIN. Faire en sorte que la fonction génère une demi période du signal carré. Constatez si le port de sortie est mis à jour instantanément lorsque le port d'entrée est modifié. More... | |
void | exo9 () |
Exercice 9: Vous devez modifier l'exercice 8 pour faire en sorte que la recopie du port d'entrée se fasse sur le port de sortie en permanence. Pour cela utiliser une fonction non bloquante pour gérer la temporisation à l'aide d'un timer par scrutation: https://www.arduino.cc/reference/en/language/functions/time/millis/. More... | |
void | exo10 () |
Exercice 10: Découverte du pseudo parallélisme: Dans un premier temps exo10 appelle juste la fonction tache1() puis réalise une attente bloquante de 500ms. More... | |
void | tache1 () |
tache1: Découverte du pseudo parallélisme: la tache 1 consiste à réaliser un compteur sur 4 bits sur les bits (3..0) du port de sortie. La valeur maximale prise par ce compteur est réglé par les bits (3..0) du port d'entrée. "t1" doit être affiché dans la console série. More... | |
void | exo11 () |
Exercice 11: Découverte du pseudo parallélisme: Dans un second temps exo11 appelle les fonctions tache1() et tache2() puis réalise une attente bloquante de 500ms. More... | |
void | tache2 () |
tache2: Découverte du pseudo parallélisme: la tache 2 consiste à réaliser un chenillard sur 4 bits sur les bits (7..4) du port de sortie. 4 séquences différentes sont définies dans les tableaux tab1 à 4 fournis. Le choix de la séquence utilisée est réalisé à l'aide des bits d'entrées (6..5). Si le bit d'entrée 4 est à 0 alors la séquence est mise en pause. "t2" doit être affiché dans la console série. More... | |
void | exo12 () |
Exercice 12: Découverte du pseudo parallélisme: la tache1 doit être réalisée toutes les 500ms et la tache2 doit être réalisée toutes les Nms, N étant la valeur sur 10bits lue sur l'entrée analogique 0. More... | |
void | exo13 () |
Exercice 13: Gestion d'une interruption matérielle: ajouter à l'exo12 la commande de la commutation de la LED connectée à LEDPIN par l'appui sur le bouton poussoir connecté à BUTTONPIN. Pour cela vous utiliserez une interruption sur broche. La liste des vecteur d'interruption est visible en page 49 de https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf vous utiliserez external interrupt en page 53, BUTTONPIN doit être égal à 2 car c'est uniquement cette broche qui peut déclencher cette interruption. More... | |
void | setupINT0 () |
ISR (INT0_vect) | |
Variables | |
const unsigned int | LEDPIN =3 |
const unsigned int | BUTTONPIN =2 |
unsigned char | imageSortie =0 |
Premier TD pour le CESI.
void exo1 | ( | ) |
Exercice 1: Vous devez piloter le port de sortie en recopiant l'état du port entrée et afficher sur la console série en héxadécimal la valeur lue sur le port d'entrée Utilisez les fonctions void SetupES(void); unsigned char readPort(void); et void writePort(unsigned char value); de lib_io_tp.h Configurez et utiliser l'interface de communication Série/USB https://www.arduino.cc/reference/en/language/functions/communication/serial https://www.arduino.cc/reference/en/language/functions/communication/serial/print/ https://www.arduino.cc/reference/en/language/functions/communication/serial/println/.
void exo10 | ( | ) |
Exercice 10: Découverte du pseudo parallélisme: Dans un premier temps exo10 appelle juste la fonction tache1() puis réalise une attente bloquante de 500ms.
void exo11 | ( | ) |
void exo12 | ( | ) |
Exercice 12: Découverte du pseudo parallélisme: la tache1 doit être réalisée toutes les 500ms et la tache2 doit être réalisée toutes les Nms, N étant la valeur sur 10bits lue sur l'entrée analogique 0.
void exo13 | ( | ) |
Exercice 13: Gestion d'une interruption matérielle: ajouter à l'exo12 la commande de la commutation de la LED connectée à LEDPIN par l'appui sur le bouton poussoir connecté à BUTTONPIN. Pour cela vous utiliserez une interruption sur broche. La liste des vecteur d'interruption est visible en page 49 de
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf vous utiliserez external interrupt en page 53, BUTTONPIN doit être égal à 2 car c'est uniquement cette broche qui peut déclencher cette interruption.
void exo2 | ( | ) |
Exercice 2: Vous devez piloter le port de sortie en recopiant l'entrée 7 sur la sortie dont le numéro est défini par entree(2..0)
void exo3 | ( | ) |
Exercice 3: Vous devez piloter le port de sortie pour réaliser le transcodage de la valeur 4 bits lues sur entrée(3..0) vers les 7 bits du port de sortie (6..0) en utilisant le tableau tab fourni, puis ajouter le pilotage de la sortie 7 avec l'entrée 7.
void exo4 | ( | ) |
Exercice 4: Vous devez configurer les entrées sorties numériques de l'arduino numéro BUTTONPIN et LEDPIN, puis effectuer la recopie de l'entrée BUTTONPIN sur la sortie LEDPIN en boucle.
https://www.arduino.cc/reference/en/language/functions/digital-io/pinmode/ https://www.arduino.cc/reference/en/language/functions/digital-io/digitalread/ https://www.arduino.cc/reference/en/language/functions/digital-io/digitalwrite/.
void exo5 | ( | ) |
Exercice 5: Vous devez configurer l'entrée analogique A0 puis effectuer la commande du port de sortie pour qu'une seule LED s'allume à la position approximative du potentiomètre. https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/.
void exo6 | ( | ) |
Exercice 6: Vous devez configurer l'entrée analogique A0 puis effectuer la commande de la LED connecté à la sortie LEDPIN afin qu'elle clignote à une fréquence pilotée par le potentiomètre. La commande de la durée des états hauts et bas de la sortie LEDPIN sera gérée à l'aide d'une fonction d'attente bloquante delay: https://www.arduino.cc/reference/en/language/functions/time/delay/.
void exo7 | ( | ) |
Exercice 7: Vous devez configurer l'entrée analogique A0 puis effectuer la commande de la LED connecté à la sortie LEDPIN afin qu'elle clignote avec un rapport cyclique piloté par le potentiomètre. La commande de la durée des états hauts et bas de la sortie LEDPIN sera cette fois ci gérée à l'aide d'une sortie PWM (la broche LEDPIN est compatible PWM) à l'aide de la fonction analogWrite() : https://www.arduino.cc/reference/en/language/functions/analog-io/analogwrite/.
void exo8 | ( | ) |
Exercice 8: Vous devez combiner les exercices 1 et 6 en utilisant une durée de 2 secondes pour les états hauts et bas du signal pilotant la sortie LEDPIN. Faire en sorte que la fonction génère une demi période du signal carré. Constatez si le port de sortie est mis à jour instantanément lorsque le port d'entrée est modifié.
void exo9 | ( | ) |
Exercice 9: Vous devez modifier l'exercice 8 pour faire en sorte que la recopie du port d'entrée se fasse sur le port de sortie en permanence. Pour cela utiliser une fonction non bloquante pour gérer la temporisation à l'aide d'un timer par scrutation: https://www.arduino.cc/reference/en/language/functions/time/millis/.
ISR | ( | INT0_vect | ) |
void loop | ( | ) |
La fonction loop doit appeler une seule fonction exo... à la fois, vous devez conserver le code de tous les exercices mais n'en utiliser qu'un à la fois.
void setup | ( | ) |
Initialisation des périphériques et des variables globales.
void setupINT0 | ( | ) |
void tache1 | ( | ) |
tache1: Découverte du pseudo parallélisme: la tache 1 consiste à réaliser un compteur sur 4 bits sur les bits (3..0) du port de sortie. La valeur maximale prise par ce compteur est réglé par les bits (3..0) du port d'entrée. "t1" doit être affiché dans la console série.
void tache2 | ( | ) |
tache2: Découverte du pseudo parallélisme: la tache 2 consiste à réaliser un chenillard sur 4 bits sur les bits (7..4) du port de sortie. 4 séquences différentes sont définies dans les tableaux tab1 à 4 fournis. Le choix de la séquence utilisée est réalisé à l'aide des bits d'entrées (6..5). Si le bit d'entrée 4 est à 0 alors la séquence est mise en pause. "t2" doit être affiché dans la console série.
const unsigned int BUTTONPIN =2 |
Variable globale indiquant la broche Arduino connectée au bouton poussoir
unsigned char imageSortie =0 |
Variable globale permettant de stocker la dernière valeur écrite sur le port de sortie, pour pouvoir en modifier uniquement certains bits
const unsigned int LEDPIN =3 |
Variable globale indiquant la broche Arduino connectée à la LED