My Project
Functions | Variables
cesi1.ino File Reference

Premier TD pour le CESI. More...

#include "lib_io_tp.h"
Include dependency graph for cesi1.ino:

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
 

Detailed Description

Premier TD pour le CESI.

Author
Bertrand Vandeportaele IUT GEII
Date
28/10/2021

Function Documentation

◆ exo1()

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/.

Here is the call graph for this function:

◆ exo10()

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.

Here is the call graph for this function:

◆ exo11()

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.

Here is the call graph for this function:

◆ exo12()

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.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ exo13()

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.

Here is the call graph for this function:

◆ exo2()

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)

Here is the call graph for this function:

◆ exo3()

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.

Here is the call graph for this function:

◆ exo4()

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/.

◆ exo5()

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/.

Here is the call graph for this function:

◆ exo6()

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/.

◆ exo7()

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/.

◆ exo8()

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é.

Here is the call graph for this function:

◆ exo9()

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/.

Here is the call graph for this function:

◆ ISR()

ISR ( INT0_vect  )

◆ loop()

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.

Here is the call graph for this function:

◆ setup()

void setup ( )

Initialisation des périphériques et des variables globales.

Here is the call graph for this function:

◆ setupINT0()

void setupINT0 ( )

◆ tache1()

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.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ tache2()

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.

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ BUTTONPIN

const unsigned int BUTTONPIN =2

Variable globale indiquant la broche Arduino connectée au bouton poussoir

◆ imageSortie

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

◆ LEDPIN

const unsigned int LEDPIN =3

Variable globale indiquant la broche Arduino connectée à la LED