REPUBLIQUE TUNISIENNE Signatures des
N° de la feuille
MINISTERE surveillants
DE L’ENSEIGNEMENT SUPERIEUR ET DE LA
RECHERHCE SCIENTIFIQUE
FEUILLE
UNIVERSITE DE SOUSSE
Nombre totale
Ecole Nationale d’Ingénieurs de Sousse D'EXAMEN des feuilles
Nom :............................................................
Prénom :....................................................... Identifiant secret
N° CIN : ......:......:......:......:......:......:......:…… :
Epreuve de :..................................................
Spécialité :........................ Session :.............................. Groupe :............................. Ne rien écrire ici
Classe : .................................................... Note Attribuée Identifiant secret
Enseignant(s) :.........................................
.................................................................
Durée :.....................................................
Nombre totale des pages :.............pages Ne rien écrire ici
ATTENTION : Les questions sont dépendantes
I/ Configuration E/S de la carte ST32
On choisit de configurer la carte STM32 suivant la figure ci-contre
1. Modifiez les bits du registre MODER qui correspond à cette config.
On donne : [00:entrée], [01:output], [10:AF], [11:analogique]
31 0
FIGURE 1
2. Tapez les 2 lignes du code en C (Forçage à zéro et Affection) pour permettre la configuration du registre MODER
Forçage à 0) ……. ………………………………………….…………Affectation) … …………………….……………………….…………..
3. Tapez les 2 lignes du code en C (Forçage à zéro et Affection) pour mettre LD=LM=LG=1 (dans le registre ODR)
4. F) ……….. ……………………………………………………..………A) ……….. …………………….……………………….…………..
5. Tapez la ligne du code en C pour lire les capteurs CD,CM,CG dans une variable b (à partir du registre IDR)
b=………………………………………… ………………………
6. Configuration du Timer4
Tracez l’architecture du Timer4, et calculez la valeur des registres PSC (Prescaler), PR (period) qui réalisent la
génération d’un signal de fréquence fixe F3=1HZ et un PWM qui varie entre 0 et 2000, et ceci pour une
fréquence d’entrée F1=42Mhz.
……………………………………………………………………………………………………………………..……………………………………………………………………
……………………………………………………………………………………………………………………..……………………………………………………………………
……………………………………………………………………………………………………………………..……………………………………………………………………
……………………………………………………………………………………………………………………..……………………………………………………………………
NE RIEN ECRIRE ICI
……………………………………………………………………………………………………………………..……………………………………………………………………
……………………………………………………………………………………………………………………..……………………………………………………………………
PAGE 1
Développement d’une horloge logicielle en utilisant l’interruption du TIMER4 (de fréquence 1 HZ)
-Donnez le flow code de cette interruption et le code C de l’interruption
CHEMIN
CG
Application : Robot suiveur d’une bande noire à 2 roues
MG CM
LG CD
Ce robot comprend 3 capteurs de réflexion CD,CM, CG LM
LD
qui donne 1 si le capteur est au-dessus de la bande noire
FIGURE 2
et 0 ailleurs. Et trois leds de signalisations LD, LM, LG. MD
Les conditions de fonctionnements sont: (1) ∀ CM et si CD=1 alors Tourner à Droite et LD allumée.
(2) ∀ CM et si CG=1 alors Tourner à Gauche et LG allumée. (3) si CM=1 et CD=CG=0 alors Marche avant et LM
allumée. (4) Le cas échéant si CG=CD alors Tourner sur place à droite (MD=0 ) et LED off.
La marche avant se fait à vitesse Max VM et la rotation droite et gauche est à VM/4
PAGE 2
A1 : En se référant aux figures 1 et 2, complétez le tableau de commande du robot
Capteurs Moteurs LED Valeur ODR pour Action
b= -Forçage à 0
CD CM CG MD MG LD LM LG
-Affectation
&=0x……………
|=0x………………
&=0x……………
|=0x………………
&=0x……………
|=0x………………
&=0x……………
|=0x………………
&=0x……………
|=0x………………
&=0x……………
|=0x………………
&=0x……………
|=0x………………
&=0x……………
|=0x………………
A2 : Complétez le flowcode (Algorigramme) classique de cette application
DEBUT
CONFIGURATION
……………………………………………………
……………………………………………………
……………………………………………………
PAGE 3
A3 : Ecrire le code C de cette application tout en utilisant les fonctions ci-dessous
//SET_PRIOD(&TIM4,x) ; // affecter la valeur x dans le registre PERIOD
//SET_PRESCALER(&TIM4,x) ; // affecter la valeur x dans le registre PSC
//SET_COMPARE(&TIM4,CHANNEL_n,v) ; // modifier le PWM du canal n par la valeur v avec (n=1,2)
// PWM_START(&TIM4, CHANNEL_n); // pour active le PWM du canal n
main()
//configuration du GPIO
……………………………………………………………..……………………………………………………………..…………………………………………………………….
……………………………………………………………..……………………………………………………………..…………………………………………………………….
……………………………………………………………..……………………………………………………………..…………………………………………………………….
//configuration du TIMER4
……………………………………………………………..……………………………………………………………..…………………………………………………………….
……………………………………………………………..……………………………………………………………..…………………………………………………………….
……………………………………………………………..……………………………………………………………..…………………………………………………………….
while(1)
PAGE 4