![]() |
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 |