Semestre S1 – 2004 – IUT GEii CACHAN Test de validation...

4

Click here to load reader

Transcript of Semestre S1 – 2004 – IUT GEii CACHAN Test de validation...

Page 1: Semestre S1 – 2004 – IUT GEii CACHAN Test de validation ...joklein.free.fr/documents/Test_ii_X.pdf · en informatique Industrielle Info Indus Auteur(s) : ... QCM Question 1. Entourez

Date : 08/10/04

1/4

Nom : Département :

Prénom : Groupe :

Semestre S1 – 2004 – IUT GEii CACHAN

Test de validation des compétencesen informatique Industrielle

Info Indus Auteur(s) : J.O.KEIN Validation

Référence : S1 – II1 – TEST -RXDurée de l'épreuve : 1 H Calculatrice autorisée : NON

Documents autorisés : AUCUN Recommandations Répondez sur cette feuille

1. QCM

Question 1. Entourez les résultats de l’évaluation correspondant aux expressions de la colonnede gauche.~OxF0 0xF0 0xCC 0x0F 0x00 0x01 0xF3 0xFF 0xC3 0x30

OxF0 | 0x33 0xF0 0xCC 0x0F 0x00 0x01 0xF3 0xFF 0xC3 0x30

OxF0 || 0x33 0xF0 0xCC 0x0F 0x00 0x01 0xF3 0xFF 0xC3 0x30

OxF0 & 0x33 0xF0 0xCC 0x0F 0x00 0x01 0xF3 0xFF 0xC3 0x30

OxF0 && 0x33 0xF0 0xCC 0x0F 0x00 0x01 0xF3 0xFF 0xC3 0x30

OxF0 ^ 0x33 0xF0 0xCC 0x0F 0x00 0x01 0xF3 0xFF 0xC3 0x30

!OxF0 0xF0 0xCC 0x0F 0x00 0x01 0xF3 0xFF 0xC3 0x30

Question 2. Entourez la définition/initialisation d’un pointeur ptr qui pointera sur un octet situé àl’adresse 0xF0. Soulignez l’instruction qui écrit la valeur 0xF0 à l’adresse pointée par le pointeur ptr..

unsigned char ptr = *(unsigned char ) 0xF0; unsigned char ptr * = (unsigned char ) 0xF0;

*(unsigned char ) ptr = 0xF0 ; *(unsigned char *) = 0xF0 ;

unsigned char * ptr = (unsigned char *) 0xF0; unsigned * char ptr = (unsigned char ) * 0xF0;

* ptr = 0xF0 ; ptr = *(unsigned char *) 0xF0 ;

unsigned *char ptr = *(unsigned char ) 0xF0; unsigned char ptr = (unsigned * char ) 0xF0;

Question 3. Avec le microcontrôleur que nous utilisons, un pointeur surchar est codé sur bits.

short est codé sur bits.

long est codé sur bits.

int est codé sur bits.

SPECIM

EN

Page 2: Semestre S1 – 2004 – IUT GEii CACHAN Test de validation ...joklein.free.fr/documents/Test_ii_X.pdf · en informatique Industrielle Info Indus Auteur(s) : ... QCM Question 1. Entourez

2/4

2. BOUTONS ET LEDS

Question 4. Dessinez le schéma de câblage de quatre boutons et de quatre LED sur le port I/O 8bits d'un microcontrôleur. Les LED occupent les 4 LSB (bit 0 à 3) et les boutons les 4 MSB ( bit 4 à7). Si vous utilisez une résistance, choisissez sa valeur parmi celles-ci : 4,7 / 47 / 470 / 4,7 K /47K / 470K / 4,7M .

Question 5. Avec un tel schéma, quel est …

… l’état logique qui permet d’ allumer la LED

… l’ordre de grandeur du courant dans le LEDallumée.

… l’ordre de grandeur de la tension aux bornesde la LED lorsque la LED allumée.

… l’état global du port I/O du microcontrôleur sile seul bouton n°5 est enfoncé et toutes lesLED sont éteintes

Entrée/Sortie logique TTL

Microcontrôleur

Port

I/O

P7P6P5P4

P3P2P1P0

NOM Valeur NOM Valeur

VIHMIN 2.0 V VOHMIN 2,4 V

VILMAX 0,8 V VOLMAX 0.4 V

IILMAX -1,6mA IOHMAX -0,4 mA

IIHMAX 40 A IOLMAX 16 mA

SPECIM

EN

Page 3: Semestre S1 – 2004 – IUT GEii CACHAN Test de validation ...joklein.free.fr/documents/Test_ii_X.pdf · en informatique Industrielle Info Indus Auteur(s) : ... QCM Question 1. Entourez

3/4

3. PROGRAMMATION

NOTES :On programme maintenant le microcontrôleur de l’exercice précédent, avec ses 4LED et ses 4 boutons. Le registre de direction du port (IO_DDR) est situé à l'adresse0x0141. Un bit à 1 correspond à une broche en sortie. Le registre de données du port(IO_DATA) est situé à l'adresse 0x0142.

Attention !:

1. Utilisez l’écriture la plus limpide possible. L'écriture en C doit se conformer STRICTEMENTaux techniques vues en cours.

2. Les bits inutilisés ne doivent pas être modifiés.

3. Le port doit être manipulé en utilisant un pointeur que vous définirez et initialiserez. Si vous nesavez pas définir et initialiser un pointeur, vous utiliserez dans la suite les macros supposéesprédéfinies IO_DDR et IO_DATA. À l’inverse, si vous savez le faire, vous pouvez aussi définirdes pointeurs constants sur des octets volatiles quand c’est utile.

Question 6. Compléter le programme BoutonLed.c

void main (void).{

Définir les deux pointeurs ddr etdata..

Initialiser le registre IO_DDR

Allumer la LED connectée à P3

Eteindre la LED connectée à P2

Inverser l’état des LED 1 et 2.

Appeller la procédure « voidcaseOn(void) » si le bouton

connecté à P4 est enfoncé,

Attendre (dans une boucle) que lebouton connecté à P5 soit enfoncé.

Attendre que le bouton connecté àP6 passe de l'état enfoncé à l'état

relâché (détection de front).

En permanence (dans un boucleinfinie), allumer les 4 LEDs quand

le bouton connecté à P6 est enfoncéalors que le bouton connecté à P7 est

relâché (peu importe les autres).Dans tous les autres cas, les quatre

LED doivent rester éteintes.

} SPECIM

EN

Page 4: Semestre S1 – 2004 – IUT GEii CACHAN Test de validation ...joklein.free.fr/documents/Test_ii_X.pdf · en informatique Industrielle Info Indus Auteur(s) : ... QCM Question 1. Entourez

4/4

Compétences à valider Niv. Val.

BIT_OP Evaluer une expression comportant des opérateurs demanipulation de bits et/ou des opérateurs de décalages

V

BP_MCU Câbler un bouton sur un port I/O de MCU, avec la résistancede pull up associée.

V

LED_MCU Câbler une LED sur un port I/O de MCU. V

PTR_2 Définir un pointeur PUIS l’initialiser pour manipuler unoctet à une adresse connue.

V

PTR_RW Déférencer un pointeur pour lire ou écrire dans un octet enmémoire.

V

BIT_MASK Modifier (mettre à un, mettre à zéro, inverser) l'état d'un ouplusieurs bits dans un registre sans modifier les autres enutilisant des masques.

V

W_LEVEL Attendre un niveau sur un bit V

IF_LED Donner l'ordre de grandeur du courant dans la LED V

PTR_1 Dans une seule instruction, définir et initialiser unpointeur pour manipuler un octet à une adresse connue.

O

W_EDGE Attendre un front sur un bit O

TST_01X Tester l'état d'un ou plusieurs bits dans un registreindépendamment des autres bits de ce registre. (détecter uneconfiguration de 0,1 et x)

O

PTR_CV Définir un pointeur constant sur un octet volatile R

Pièges à éviter Niv. Val.

BITvsLOG Confondre opérateurs logiques et opérateurs bit-à-bit. V

CC_BP Créer un cc sur l’alimentation avec un BP V

BP_FLOT Laisser l’entrée d’un MCU flottant lorsque le BP est relaché. V

ACTIVE_L Confondre état actif (BP enfoncé, LED allumée) et état haut. V

ET_EGAL Ne pas tenir compte des priorités relatives des opérateurs« == » et « & ».

V

Z_DECAL Utiliser x &= 0<<4 pour mettre à zéro le bit 4, par analogieavec x |= 1<<4.

V

IF_WHILE Confondre attente bloquante et test non bloquant V

PTR_SZ Confondre taille du pointeur et taille de l’objet pointé. O

STAR_NITE Confondre « opérateur de déférence » et « constructeur detype pointeur »

O

PAR_EXC Utiliser des parenthèses excessives faute de connaître lapriorité des opérateurs

O

P_INIvsDEF Confondre initialisation et déférence du pointeur O

PT_CVvsVCConfondre pointeur constant sur octet volatile et pointeurvolatile sur octet constant.

RSPECIM

EN