Micro processeur
CORRECTION
Devoir Surveillé de Microprocesseurs - S6
14 mai 2011 Durée : 1h20 Documents non autorisés
Ecrire le code de la fonction p2_init() permettant d’utiliser les broches P2.24 à P2.27 avec des boutons et les broches P2.16 à P2.19 avec des LEDs.
P2_init() { IO2DIR=0x000F0000; } Q3.
/1
Ecrire le code de la fonction uint32 p2_read() permettant de récupérer l’état des broches du port 2
Contrôle de l’ouverture d’une porte
Notions Abordées : GPIO, Interprétation d’un algorithme en langage C.
Uint32 P2_read() { return IO2PIN ; /0.5 }
Tous les codes demandés dans cette partie sont en langage C. L’écriture doit être précise, seuls les oublis de points virgules seront tolérés. Q4. On utilise la carte de développement embedded artists afin de tester un programme gérant l’ouverture ou le blocage d’une porte. Une combinaison est saisie sur les 4 boutons poussoirs de la carte reliés aux broches P2.24 à P2.27. On associe les valeurs suivantes aux différents boutons : P2.24 : 0x1 P2.25 : 0x2 P2.26 : 0x4 P2.27 : 0x8 Une combinaison est composé de 4 valeurs, qui seront stockées dans un tableau de 4 caractères combi_tape. Q1. Donner la déclaration du tableau combi_tape /0.5 void leds(uint8 val) { p2_write(val25 /0.5
Q8.
Donner le code de la fonction int verification_combi(char* combi) retournant 1 si la séquence saisie est « 0x8, 0x8, 0x4, 0x1 », 0 sinon
int verification_combi(char* combi) /1 { if( (combi[0]==0x8)&&(combi[1]==0x8)&&(combi[2]==0x4)&&(combi[3]==0x1)) { return 1; } else { return 0; } }
Q9.
Donner le code de la fonction void affichage_essai(int nb) permettant de mettre à jour les Leds en fonction du nombre d’essais. /1
void affichage_essais(int nb ) {