WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Le multitàąche avec pic18f452 a l'aide d'un noyau temps réel

( Télécharger le fichier original )
par Abdnour YOUBI
Université des Sciences et Techniques d' Oran  - ingénieur d'état en electronique 2007
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

Chapitre IV

Application Multitâche

4-1 INTRODUCTION

Dans le but d'illustrer les notions relatives au temps réel, qui ont été décrites dans les chapitres précédents, nous avons développé une application utilisant la carte Easypic2 basées sur le PIC18F452.

L'application est écrite en langage C en utilisant le compilateur MCC18 de Microchip nécessaire à la compilation de programmes écrits pour le noyau PICOS18. L'IDE MPLAB 7.4 est utilisé comme environnement intégré de développement avec le PIC18F452. L'application permet le monitoring de quatre zones de température, la gestion des entrées de l'utilisateur et affiche les informations importantes liées à la température.

4-2 DESCRIPTION DE SYSTÈME

Le matériel du prototype inclut

· Quatre capteurs de température.

· Deux potentiomètres.

· Un port série.

· Quatre afficher 7-segment.

· Clavier numérique de 7 boutons.

· et la gestion d'une alarme sonore.

L'expression « des conditions normales » sera utilisée fréquemment dans cette note d'application, le témoin du panneau de démo est en mode de contrôle de température sans des fonctions d'alarme ou d'utilisateur étant exécutées.

La base de temps est une interruption périodique de 2ms géré par le Timer1. Il y a un total de six (06) tâches, dont deux (02) sont dans l'état d'attente dans des conditions normales. Il y a six événements comme indiquée dans la figure 4-1 .

Fig 4-1 liste des événements

- Dont deux dépendent des conditions extérieures (par exemple, entrée clavier, alarme)

· Alart_EVENT : En cas de dépassement des limites de température la tache 0 (convert()) poste un événement (Alart_EVENT) à la tache1 (alarme).

· Keypad_EVENT : En cas d'appuyé sur les touches de potentiomètre la tache3 (keypad) poste un événement (Keypad_EVENT) à la tache 5 .

- Et les autres événements qui définition la périodicité des taches.

· Convert_EVENT : un événement posté périodiquement (40ms) par alarm(voir tableaux des alarmes dans fichier "taskdesc.c" ).

· Display_EVENT : un événement posté périodiquement (2ms) par alarm1

· Keypad_EVENT : un événement posté périodiquement (20ms) par alarm2

· Usart_EVENT : un événement posté périodiquement (4ms) par alarm3

On prend par exemple l'événement Convert_EVENT :

Fig 4-2 exemple d'un événement

L'instruction SetRelAlarm ( ALARM_Convert, 40, 40) est utilisée pour programmer l'alarme de la tâche 0.Une alarme est un objet TIMER basé sur une horloge logicielle à 1ms.

La fonction SetRelAlarm possède 3 champs :

· Alarm ID (ALARM_Convert) : indice de l'alarme dans le tableau Alarm_list

· TIMER 1 (40 ms): nombre de millisecondes avant le premier événement posté

· TIMER 2 (40 ms): nombre de millisecondes entre 2 événements successifs

L'alarme 0 va attendre 40ms avant de poster l'événement ALARM_Convert à la tache0, puis le postera périodiquement toutes les 40 ms.

Dans le fichier "taskdesc.c" (tableau des alarmes) l'alarme dont l'ID vaut 0 (ALARM_Convert) a été associée à la tâche TASK0.

Avec : #define ALARM_Convert 0 ( L'alarme 0 au tableau des alarmes -voir tableau des

alarmes - ).

Fig 4-3 tableau des alarmes

- Quatre capteurs de température sont divisés en quatre zones (Z1, Z2, Z3, Z4). Chaque zone sera surveillée pour contrôler si la température est entre les limites haute et basse.

Fig 4-4 Montage d'un capteur de température

Une zone qui n'est pas dans les limites actionnera l'alarme sonore(en PC) en affichant simultanément le numéro de la zone en alarme dans le premier digit. Par exemple la zone 3 est on

alarme .

Dans des conditions normales, les afficheurs afficheront toujours une température de zone sélectionnée au clavier. La zone particulière sur l'affichage dépendra du bouton de zone appuyé, par exemple la zone 2 qui est sélectionné par le bouton 2 affiches la température 23°C

Deux boutons sont utilisés pour le réglage des potentiomètres utilisés pour simuler la valeur analogique de la température. Quand un de ces boutons est appuyé la valeur correspondant à la température est affichée. A ce moment deux actions peuvent être exécutées ; soit ajuster la valeur du potentiomètre, soit on presse un autre bouton pour quitter cette fonction.

- La liaison série, en mode asynchrone, avec un PC est utilisée pour envoyer un message vers le moniteur du PC, affichant les différentes zones avec leur température ; cette action est initiée sur demande au niveau du PC par la touche `Z'.

Fig 4-5 affichage de température sur PC.

4-3 Configuration De L'application

Tout d'abord il est nécessaire de créer un projet sous MPLAB®, qui contient les sources du noyau. Ensuite il faudra avoir installé le compilateur MCC18 de Microchip, et l'avoir paramétré (voir www.picos18.com).

Puis il faut inclure les taches (Source Files.*c) et les fonctions (Header File * .h) nécessaires à l'application Voir annexe 1.

4-4 Description Détaillée :

On va dans ce paragraphe expliqué des priorités, du mode, et des responsabilités de chaque tâche : 1-Tsk-task 0 : (tache de conversion ())

· Priorité : 10

La tâche a une priorité de « 10 » parce que nous devons déterminer les températures de thermistance pour décider si des conditions d'alarme existent.

· -Mode : Exécute toutes les 40 millisecondes.

· Responsabilités :

a- Convertit la tension analogique de thermistance en valeur digitale, puis traduit cette valeur en température en degrés Celsius.

b. Cette valeur est comparée avec les températures faibles et élevées de seuil (par l'intermédiaire de la fonction ConvertTemp () pour déterminer si une alarme est nécessaire.

c. Si aucune alarme ne s'appelle alors d'autres zones de thermistance sont converties.

· Organigramme


· Programme:

2- Tsk-task 1 : (tache des alarmes ())


· Priorité : 10

Cette tâche a également une priorité de «10 », mais s'exécute après Tsk-task 0 en mode Round Robin.

Après détermination de la température, la vérification des alarmes de zone est la plus importante.

· Mode : Attente sur un événement.

· Responsabilités :

a. A la même priorité comme Tsk-task 0, et exécute juste après, Tsk-task 0.

b. Affiche le numéro de zone dans l'alarme.

c. Actionne l'alarme sonore (marche-arrêt).

· Organigramme

· Programme:

3-Tsk-tas 2 (Tâche d'affichage () )

· -Priorité: 9

Permet aux températures d'être lues pour affichage.

· Mode : Exécute toutes les 2 millisecondes.

· Responsabilités :

a. Convertit la valeur de la température en format nécessaire pour

b. Affiche chaque chiffre converti.

4-Tsk-task 3 (Tache de clavier -boutons -)

· Priorité : 8

L'entrée de clavier numérique est peu fréquente et ne devrait pas précéder les tâches antérieures. Mode : Exécute toutes les 20 millisecondes.

· Responsabilités :

a. Scrute pour l'entrée de réglage de potentiomètre.

b. Scrute pour l'entrée d'affichage de zone

5-Tsk-task 4 (Tache de l'usart)

· Priorité : 7

La surveillance éloignée de PC est seulement exécutée de temps en temps parce que l'utilisation est faible.

· Mode : Exécute toutes les 800 millisecondes.

· Responsabilités :

1. Scrute pour une entrée de clavier de PC (appuyez z).

2. Prépare chaque température de zone pour l'affichage de moniteur de PC.

3. Écrit la chaîne de caractères Z1 vers la fenêtre Hyper Terminal par l'intermédiaire de l'USART.


· Organigramme

Task 4

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Enrichissons-nous de nos différences mutuelles "   Paul Valery