AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Machines d'états

Description détaillée

Les machines d'état sont des compteurs atomiques partagés par plusieurs threads. Les opérations de base sur les machines d'état sont :

Graphe de collaboration de Machines d'états:

Fonctions

void vStateSet (xState *pxState, uint8_t ucValue)
 Affecte la valeur d'une machine d'état de façon atomique. Plus de détails...
 
void vStateSwitch (xState *pxState, uint8_t ucFrom, uint8_t ucTo)
 vStateSwitch suspend le thread appelant jusqu'à ce que le compteur de la machine d'état pointée par pxState valle {ucFrom}. Alors, le compteur est affecté à la valeur {ucTo}. Plus de détails...
 
void vStateWait (xState *pxState, uint8_t ucValue)
 vStateWait suspend le thread appelant jusqu'à ce que le compteur de la machine d'état pointée par pxState valle {ucValue}. Plus de détails...
 
uint8_t xStateGet (xState *pxState)
 Lit la valeur d'une machine d'état de façon atomique. Plus de détails...
 
int8_t xStateTryswitch (xState *pxState, uint8_t ucFrom, uint8_t ucTo)
 xStateTryswitch est une variante non bloquante de vStateSwitch(). Plus de détails...
 
int8_t xStateTrywait (xState *pxState, uint8_t ucValue)
 xStateTrywait est une variante non bloquante de vStateWait(). Plus de détails...
 

Définitions de type

typedef volatile uint8_t xState
 Le type xState est une variable atomique qui peut évoluer entre 0 et 255.
 

Documentation des fonctions

void vStateSet ( xState pxState,
uint8_t  ucValue 
)

Affecte la valeur d'une machine d'état de façon atomique.

Paramètres
pxStatepointeur sur la machine d'état
ucValuevaleur à assigner
void vStateSwitch ( xState pxState,
uint8_t  ucFrom,
uint8_t  ucTo 
)

vStateSwitch suspend le thread appelant jusqu'à ce que le compteur de la machine d'état pointée par pxState valle {ucFrom}. Alors, le compteur est affecté à la valeur {ucTo}.

Paramètres
pxStatepointeur sur la machine d'état
ucFromvaleur à attendre
ucTovaleur à assigner
void vStateWait ( xState pxState,
uint8_t  ucValue 
)

vStateWait suspend le thread appelant jusqu'à ce que le compteur de la machine d'état pointée par pxState valle {ucValue}.

Paramètres
pxStatepointeur sur la machine d'état
ucValuevaleur à attendre
uint8_t xStateGet ( xState pxState)

Lit la valeur d'une machine d'état de façon atomique.

Paramètres
pxStatepointeur sur la machine d'état à lire
Renvoie
la valeur lue.
int8_t xStateTryswitch ( xState pxState,
uint8_t  ucFrom,
uint8_t  ucTo 
)

xStateTryswitch est une variante non bloquante de vStateSwitch().

Paramètres
pxStatepointeur sur la machine d'état à attendre
Renvoie
0 si machine d'état affectée, -1 sinon
Note
Cette fonction ne bloque jamais et peut être utilisée de manière fiable dans un gestionnaire de signaux.
int8_t xStateTrywait ( xState pxState,
uint8_t  ucValue 
)

xStateTrywait est une variante non bloquante de vStateWait().

Paramètres
pxStatepointeur sur la machine d'état à attendre
Renvoie
0 Si la machine d'état pointé par {pxState} vaut {ucValue}, -1 sinon
Note
Cette fonction ne bloque jamais et peut être utilisée de manière fiable dans un gestionnaire de signaux.