Upload
vonhan
View
217
Download
0
Embed Size (px)
Citation preview
École Polytechnique de Montréal
Département de génie informatique et génie logiciel
INF1995: Projet initial en ingénierie informatiqueet travail en équipe
Quiz du volet technique
Session automne 2012
Section 1, le mercredi 3 octobre 2012, 8h30, local L-3816
Enseignant : Jérôme Collin, ing., M. Sc. A.
Directives:
Le quiz est sur 20 points et comporte 7 pages, incluant la présente.
La pondération pour la session est de 15%.
La documentation, le robot et la calculatrice ne sont pas permis.
Répondre sur le questionnaire et le remettre.
Pour les questions à développement, prenez soin d’exprimer clairement vos
arguments car la correction en tiendra compte.
La durée est de 30 minutes
Inutile de préciser votre matricule sur la copie
Nom, prénom: _____________________________________________
1
Question 1 (3 points)
Comment, avec une minuterie telle que le timer1 du ATMega324PA, peut-on arriver à générerune interruption après un délai de 2 millisecondes par exemple ? Il n'est pas nécessaire depréciser les noms des éléments matériels impliqués ni de faire de calculs de délais précis mais on désire avoir une description, dans vos mots, du mécanisme par lequel le réglage peut être effectué de façon générale. Les aspects matériels et de programmation doivent être abordés.
2
Question 2 (2 points)
Comment arrive-t-on à identifier la polarité d'une diode avant de la souder sur une carte de circuit imprimé ?
Question 3 (2 points)
Quelle sera la valeur de la variable result après l'exécution des deux lignes de code C suivantes ? Il serait bien de démontrer votre raisonnement pour obtenir des points en cas de simples erreurs de calcul. Donnez la réponse finale en hexadécimal.
uint8_t result = 0x85;result = ~( ( result >> 3 ) | 0x74 );
3
Question 4 (2 points)
Que est la meilleure façon de coder, en langage C/C++, la partie de code décrivant les transitions d'un état à un autre d'une machine à états finis logicielle ?
Question 5 (2 points)
Qu'est-ce qu'il faudra placer aux endroits marqués 'modifier ici' dans le code plus bas ? Il n'est pas nécessaire d'avoir la syntaxe exacte. On veut simplement savoir, dans vos mots, la raison de la présence de ce qui doit être inscrit.
ISR ( 'modifier ici' ) {minuterieExpiree = 1;...
}
ISR ( 'modifier ici' ) {boutonPoussoir = 1;...
}
4
Question 6 (2 points)
On dit souvent du microcontrôleur Atmega324PA qu'il est un microcontrôleur de 8 bits. Qu'est -ce que cela signifie ?
Question 7 (2 points)
Quelle est la différence entre générer du PWM de façon logicielle et de façon matérielle ? Quels est le principal avantage du PWM matériel par rapport à celui logiciel ?
5
Question 8 (5 points)
Pour chacune des 5 situations décrites plus bas, choisir un seul élément de 1 à 16 dans laliste proposée qui est impliqué dans la réalisation de l'action. Un choix ne peut être utiliséqu'une seule fois au maximum, donc pour une seule situation au maximum.
Choix possibles:
1 – timer/counter 1
2 – DDRA
3 – PORTA
4 – uint8_t
5 – Soudure froide
6 – volatile
7 – ATmega324PA
8 – Un bouton-poussoir
9 – ATmega8
10 – Reset
11 – Avoir une masse commune (GND)
12 – diode libre
13 – EEPROM
14 – ISP-10 et ProgSEL
15 – F_CPU
16 – Cavalier (jumper)
6
Situations:
A) Peut-être vue, à l'extrême, comme la plus grand interruption, celle de plus haute priorité.
_______
B) Sera probablement utilisé si on veux perdre du temps sans avoir recours à des formes de «busy wait» comme les fonctions de délais disponibles par les fichiers “include” <util/delay.h> par exemple.
_______
C) Partie de la carte mère qui est utile surtout lors de l'initialisation de la carte par les chargés de laboratoire en début de session, après l'étape de montage.
_______
D) Doit accompagner la déclaration d'une variable globale utilisée dans un routine d'interruption.
_______
E) Entrée sensible au phénomène de rebond.
_______
*************
7