Académique Documents
Professionnel Documents
Culture Documents
PORTBbits.RB0 = !(PORTBbits.RB0);
2 Implémentation de l’horloge
Le système ”horloge” est implémenté en deux tâches : une tâche de comptage qui incrémente une variable
globale, et une tâche permettant d’afficher la valeur de cette variable globale sur les afficheurs 7 segments,
en utilisant la technique de multiplexage. Les deux tâches ont ainsi une relation de communication par zone
commune de donnée qui est la variable globale.
Cette fonction permet d’afficher un digit de la valeur ’value’ dans sa position qui est précisée par le
paramètre ’position’. Exemple : l’instruction SevSegDisplay(1234, 1) permet d’afficher le digit
de valeur ’4’ sur l’afficheur 7 segments de position ’1’ (celui des unités).
4. En exploitant la période Topt trouvée dans la partie 1 définir la période de la tâche vTaskDisplay de
sorte à afficher à tour de rôle les quatre digits sur leurs afficheurs correspondants.
2. Dans le code de la tâche comptage vTaskCount, faire appel à la fonction suivante fournie par FreeRTOS,
de sorte que la tâche comptage se suspende elle-même :
3. Créer et définir une tâche vTaskKey de période 100 ms permettant de lire les boutons RC7 et RC6
par scrutation, et qui, suite à l’appui de l’un des boutons, permet de suspendre ou de lancer la tâche
vTaskCount comme décrit plus haut. L’API permettant de lancer la tâche est définie par le prototype
suivant :
∗ Note : La carte est configurée de sorte que l’appui sur l’un des boutons génère un ’0’ logique.