100% satisfaction guarantee Immediately available after payment Both online and in PDF No strings attached 4.2 TrustPilot
logo-home
Exam (elaborations)

solution Quick1 ALM

Rating
-
Sold
1
Pages
8
Grade
Très Satisfaisant
Uploaded on
18-12-2023
Written in
2023/2024

Solution Quick1 ALM (Solution Quick1 ALM)

Institution
Course









Whoops! We can’t load your doc right now. Try again or contact support.

Written for

Institution
Study
Course

Document information

Uploaded on
December 18, 2023
Number of pages
8
Written in
2023/2024
Type
Exam (elaborations)
Contains
Questions & answers

Subjects

Content preview

Université Grenoble Alpes Année 2023-2024
L3 Informatique


ALM - Quick 18/10/2023

Durée = 1h
Aucun document autorisé.

NOTE IMPORTANTE. Pour toutes les questions où il est demandé d'expliquer la réponse, une
réponse sans explication sera notée 0.


NOM : ………..……..……..………………….. PRENOM : ……………………………………..


Exercice 1. 14 points
Le problème considéré ici concerne le contrôle de feux tricolores à l'intersection d'une route
principale et d'une route secondaire très peu fréquentée.
Pour fluidifier la circulation, le principe consiste à laisser le feu au vert sur la route principale le
plus longtemps possible (et donc le feu au rouge sur la route secondaire). Les feux ne s'inver-
seront que lorsqu'un nombre minimum de voitures seront arrivées au feu rouge sur la route
secondaire, nous considérerons 12 voitures ici. Son feu restera alors au vert (et celui de la route
principale au rouge) pour un temps constant (qui a préalablement été estimé suffisant pour que
la quantité de voitures généralement présentes aient le temps de franchir le feu).
NOTE. Pour simplifier le problème, nous ne considérerons pas le passage par le feu orange.

Notre objectif serait d'utiliser la carte STM32F4 pour piloter le feu sur la route principale.
Nous allons ici seulement simuler le passage au feu vert ou rouge par l'allumage de la led
correspondante. L'évolution de l'allumage des leds se fera à la fréquence du systick.
Afin de simuler également le comptage des voitures se présentant au feu rouge sur la route
secondaire, nous utiliserons le générateur de nombres aléatoires.
Quelques rappels concernant ces périphériques, et des macros à utiliser dans les questions de
cet exercice, sont fournis en Annexe.

Le code développé ci-dessous utilisera de plus les définitions/déclarations suivantes :
// Nombre de voitures au-delà duquel le feu sur la route principale doit
// passer au rouge :
#define MAX_CAR 12
// Nombre de périodes du systick pendant feu rouge sur route principale :
#define LIMIT_RED 6
uint32_t rnd = 0; // valeur récupérée du RNG
unsigned int nb_car = 0; // nombre de voitures sur route secondaire
int green = 1; // 1 si feu vert, 0 si feu rouge sur route principale
unsigned int count_time_red = 0; // comptage des périodes au feu rouge


Q1. En utilisant les définitions fournies, définir une macro GPIO_OUT qui permet d'accéder au
contenu du registre de sortie du port GPIO auquel sont connectées les leds, comme un entier
non signé 32 bits (on rappelle que le type correspondant est uint32_t).
Réponse. 1 pt


Cf cours 1 (slides 43 à 47 + vos notes de cours) et exercice 2 du TD2 semaine 1

, Q2. Expliquer selon quelle méthode (i.e., en modifiant quoi, comment, pourquoi ?) vous
pourrez procéder à un allumage des leds qui sera caractérisé par une valeur val : val est un
entier compris entre 0 et 15, chaque bit à 1 de ce code sur 4 bits indique une led à allumer.
Réponse. 1 pt



Cf TD/TP semaine 3 (et repris encore dans les semaines suivantes), en particulier tous les
détails expliqués pas à pas dans l’exercice 2 du TD.




Q3. Recopier et compléter le code de la fonction allume_leds ci-dessous selon ce que vous
avez conçu aux questions 2 et 1.
void allume_leds (uint16_t val) {
// compléter
}

Réponse. 1 pt




Idem, cf TD/TP semaine 3 (et repris encore dans les semaines suivantes), en particulier tous
les détails expliqués pas à pas dans l’exercice 2 du TD.




Comme indiqué précédemment, nous allons maintenant simuler le passage au feu vert ou
rouge sur la route principale par l'allumage de la led correspondante.
Afin de simuler le comptage des voitures se présentant au feu rouge sur la route secondaire,
nous utiliserons le générateur de nombres aléatoires en mode interruption (il est supposé
avoir été configuré en conséquence).

Q4. Expliquer comment s’appellera (pourquoi) et tout ce que fera techniquement la fonction qui
sera chargée de récupérer dans la variable globale rnd un nouveau nombre aléatoire
généré, automatiquement chaque fois qu'il est disponible (ne pas oublier qu’il faut vérifier qu'un
nouveau nombre aléatoire est bien prêt, cf Annexe).
En utilisant les définitions fournies, écrire cette fonction.
Préciser ce qui provoquera l'appel de cette fonction lorsqu’un nouveau nombre est disponible.
$11.05
Get access to the full document:

100% satisfaction guarantee
Immediately available after payment
Both online and in PDF
No strings attached

Get to know the seller
Seller avatar
liliaferrouk

Get to know the seller

Seller avatar
liliaferrouk Grenoble I - Université Joseph-Fourier
Follow You need to be logged in order to follow users or courses
Sold
2
Member since
2 year
Number of followers
0
Documents
33
Last sold
2 months ago

0.0

0 reviews

5
0
4
0
3
0
2
0
1
0

Recently viewed by you

Why students choose Stuvia

Created by fellow students, verified by reviews

Quality you can trust: written by students who passed their tests and reviewed by others who've used these notes.

Didn't get what you expected? Choose another document

No worries! You can instantly pick a different document that better fits what you're looking for.

Pay as you like, start learning right away

No subscription, no commitments. Pay the way you're used to via credit card and download your PDF document instantly.

Student with book image

“Bought, downloaded, and aced it. It really can be that simple.”

Alisha Student

Frequently asked questions