![]() |
AvrIO
1.4.5
Bibliothèque C modulaire pour ATMEL AVR
|
Ce module permet d'exécuter des fonctions de façon périodique.
Cela revient à mettre en place une organisation dans le temps de plusieurs tâches. Le passage d'une tâche à l'autre est cadencé par une routine d'interruption déclenchée périodiquement par un timer matériel.
La macro AVRIO_TASK_ENABLE doit être définie au moment de la compilation et dans ce cas, la partie interface matérielle doit être implémentée dans le fichier avrio-board-kernel.h .
L'intervalle maximal de temps pouvant être géré dépend de la taille de ticks_t. Si AVRIO_TIME_UINT32 n'est pas défini à la compilation, ticks_t est codé sur 16 bits soit une valeur max de 65535 ticks. Pour un tick de 1 ms cela ne fait qu'un peut plus d'une minute ! Dans le cas contraire, ticks_t est codé sur 32 bits, soit une valeur max de 4096 Mi ticks soit un peu plus de 1193 heures !
|
Fonctions | |
| void * | pvTaskGetUserData (xTaskHandle t) |
| Renvoie la variable utilisateur d'une tâche. Plus de détails... | |
| void | vTaskDelete (xTaskHandle t) |
| Suppression d'une tâche. Plus de détails... | |
| void | vTaskRewind (xTaskHandle t) |
| Rembobine le décompte d'une tâche. Plus de détails... | |
| void | vTaskSetInterval (xTaskHandle t, ticks_t xIntervalTicks) |
| Modifie la période d'une tâche. | |
| void | vTaskSetUserData (xTaskHandle t, void *data) |
| Modifie la variable utilisateur d'une tâche. Plus de détails... | |
| void | vTaskStart (xTaskHandle t) |
| Démarre une tâche. Plus de détails... | |
| void | vTaskStop (xTaskHandle t) |
| Arrête une tâche. Plus de détails... | |
| ticks_t | xTaskConvertMs (time_t xTimeMs) |
| Convertit une valeur de temps (millisecondes) en ticks. | |
| time_t | xTaskConvertTicks (ticks_t xTicks) |
| Convertit une valeur de ticks en millisecondes. | |
| xTaskHandle | xTaskCreate (ticks_t xIntervalTicks, xTaskFunction xFunction) |
| Ajout d'une tâche. Plus de détails... | |
| ticks_t | xTaskGetInterval (xTaskHandle t) |
| Lit la période d'une tâche. | |
| bool | xTaskIsStarted (xTaskHandle t) |
| Indique si une tâche est lancée. Plus de détails... | |
| ticks_t | xTaskSystemTime (void) |
| Renvoie le nombre de ticks depuis le démarrage du système. | |
Macros | |
| #define | AVRIO_KERNEL_ERROR (-1) |
| Indique une erreur. | |
Définitions de type | |
| typedef void(* | xTaskFunction) (xTaskHandle) |
| La fonction d'une tâche ne renvoit rien et reçoit son identifiant. | |
| typedef int8_t | xTaskHandle |
| xTaskHandle Identifiant d'une tâche | |
|
inline |
Renvoie la variable utilisateur d'une tâche.
| t | tâche concernée |
| void vTaskDelete | ( | xTaskHandle | t | ) |
Suppression d'une tâche.
| t | tâche à supprimer |
|
inline |
Rembobine le décompte d'une tâche.
| t | tâche à rembobiner |
|
inline |
Modifie la variable utilisateur d'une tâche.
| t | tâche concernée |
| data | pointeur sur la variable utilisateur |
| void vTaskStart | ( | xTaskHandle | t | ) |
Démarre une tâche.
| t | tâche à démarrer |
| void vTaskStop | ( | xTaskHandle | t | ) |
Arrête une tâche.
| t | tâche à arrêter |
| xTaskHandle xTaskCreate | ( | ticks_t | xIntervalTicks, |
| xTaskFunction | xFunction | ||
| ) |
Ajout d'une tâche.
| xIntervalTicks | Période de la tâche en ticks |
| xFunction | Fonction à exécuter à chaque période écoulée |
| bool xTaskIsStarted | ( | xTaskHandle | t | ) |
Indique si une tâche est lancée.
| t | tâche à tester |