Académique Documents
Professionnel Documents
Culture Documents
• Redécouverte de CubeMX
• Création des taches et ordonnancement
Les entrées :
• Broche PB0 : fait l'acquisition de l'état du Bouton Arrêt d'Urgence, ce dernier peut être
actionné à n'importe quel moment du cycle.
• Broche PA1 : fait l'acquisition de l'état du Bouton Montée.
• Broche PA2 : fait l'acquisition de l'état du Bouton Descente.
• Broche PA3 : est reliée au Capteur Position Haut, qui se met à 1 lorsqu'il détecte la présence
de la tête de la perceuse.
• Broche PA4 : de même, elle est reliée au Capteur Position Bas.
• Broche PB7 : est reliée au Bouton Réparation Défaut, qui se met à 1 suite à un appui.
1
• Les sorties :
• Broche PB1 reliée à une LED: représente la Rotation du moteur de perceuse.
• Broche PB2 reliée à une LED: représente la Descente de la tête de la perceuse.
• Broche PB3 reliée à une LED: représente la Montée de la tête de la perceuse.
• Broche PB4 reliée à une LED: représente un Voyant de défaut.
Le cycle effectué par la perceuse est le suivant :
1) Dès l'appui sur le bouton Descente, la LED "Descente" est allumée et la perceuse se met en rotation
puis descend jusqu'à atteindre le Capteur de Position Bas. A ce moment les mouvements de rotation et
de descente sont arrêtés et la LED est éteinte.
2) Dès l'appui sur le bouton Montée, la LED "Montée" est allumée et la perceuse se met en rotation puis
descend jusqu'à atteindre le Capteur de Position Haut. A ce moment les mouvements de rotation et de
montée sont arrêtés et la LED est éteinte.
La gestion du Bouton Arrêt d'Urgence se fait comme suit :
1) Si l'Arrêt d'Urgence est actionné, la Rotation s'arrête et la perceuse remonte quelque soit l'endroit ou
l'on se trouve dans le cycle.
2) La led "Défaut" est allumée jusqu'à ce que le défaut soit réparé (Bouton Réparation Défaut appuyé).
Tant que le défaut n’est pas réparé l'appui sur les boutons Descente et Montée est ignoré.
Lorsque le défaut est réparé la LED "Défaut" est éteinte.
III- Résolution de problème sans FreeRTOS
Pour réaliser le programme de commande de cette perceuse, créer un projet sous CubeMX avec la
configuration décrite précédemment, ensuite générer le projet MDK-ARM.
Dans cette première partie nous vous guidons pour développer le programme de commande de cette
perceuse sans l'utilisation de FreeRTOS.
Q1- Écrire la fonction Ft_Descente qui permet de lancer la rotation du moteur de la perceuse et la
descente de la perceuse jusqu'à ce que le Capteur Position Bas soit activé
Q2- Écrire la fonction Ft_Montee qui permet de lancer la rotation du moteur de la perceuse et la
montée de la perceuse jusqu'à ce que le Capteur Position Haut soit activé.
Q3- Comme il est précisé précédemment, le Bouton Arrêt d'Urgence est relié à la broche PB0 et il
est géré par une interruption sur un front montant. Écrire la routine d'interruption ayant
l'organigramme 1.
Q4- Donner le code source du programme principal ayant l'organigramme 2.
2
Organigramme 1 : INT Organigramme 2 main :
Début Début
Montée = 0
Voyant Défaut
allumé
Réparation
Défaut = 1
Ft_Descente
Ft_Montee
FIN
Q7- On veut déclarer les taches "vMontee_Task" et " vDescente_Task " une seule fois en les remplaçant par
une seule tache générique "vMD_Task". Implémenter cette nouvelle tache, en créant deux instances de cette
dernière. Préciser les modifications nécessaires au niveau du main.