AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR

Description détaillée

Ce module permet de gérer les broches numériques (binaires).
La composition du port est décrite dans un fichier avrio-board-gpio.h spécifique à la carte utilisée.

Graphe de collaboration de Port GPIO:

Fonctions

static bool bGpioRead (uint8_t ucPin)
 Lecture de l'état d'une broche (entrée ou sortie) Plus de détails...
 
static eDpEdge eGpioPinEdge (uint8_t ucPin)
 Front(s) déclenchant d'une entrée. Plus de détails...
 
static eDpMode eGpioPinMode (uint8_t ucPin)
 Lecture du type actuel d'une broche. Plus de détails...
 
static void * pGpioUserData (void)
 Données d'un gestionnaire d'interruption utilisateur. Plus de détails...
 
static vGpioCallback pvGpioCallback (void)
 gestionnaire de changement d'état Plus de détails...
 
uGpioMask uGpioReadAll (uGpioMask uPinMask)
 Lecture de l'état binaire d'un ensemble de broches. Plus de détails...
 
void vGpioPoll (void)
 Scrutation des broches. Plus de détails...
 
static void vGpioSetCallback (vGpioCallback callback)
 Modification du gestionnaire de changement d'état. Plus de détails...
 
void vGpioSetPinEdge (uint8_t ucPin, eDpEdge edge)
 Réglage du ou des front(s) déclenchant d'une entrée. Plus de détails...
 
static void vGpioSetPinMode (uint8_t ucPin, eDpMode eMode)
 Modifie le mode de la broche. Plus de détails...
 
static void vGpioSetUserData (void *udata)
 Modification données utilisateur. Plus de détails...
 
void vGpioToggle (uint8_t ucPin)
 Bascule l'état d'une sortie. Plus de détails...
 
void vGpioToggleAll (uGpioMask uPinMask)
 Bascule de l'état binaire de plusieurs sorties. Plus de détails...
 
void vGpioWrite (uint8_t ucPin, bool bValue)
 Modifie l'état d'une sortie. Plus de détails...
 
void vGpioWriteAll (uGpioMask uPinMask, bool bValue)
 Modification de l'état binaire de plusieurs sorties. Plus de détails...
 

Définitions de type

typedef unsigned int uGpioMask
 
typedef void(* vGpioCallback) (uGpioMask uPinValues, uint8_t ucPin, eDpEdge edge, void *udata)
 

Documentation des définitions de type

typedef unsigned int uGpioMask

Variable pouvant contenir le masque

Définition à la ligne 47 du fichier gpio.h.

typedef void(* vGpioCallback) (uGpioMask uPinValues, uint8_t ucPin, eDpEdge edge, void *udata)

Gestionnaire de changement d'état d'une broche

Déclenché sur modification de niveau d'une broche. Seuls les fronts valides déclenchent un traitement.

Paramètres
uPinValuesvaleur des broches (bit 0 pour broche 0, ...)
ucPinle numéro de l'broche qui a changée
edgefront déclenchant
udatapointeur sur les données utilisateur défini lors de l'appel à iGpioSetGrpCallback()

Définition à la ligne 60 du fichier gpio.h.

Documentation des fonctions

static bool bGpioRead ( uint8_t  ucPin)
inlinestatic

Lecture de l'état d'une broche (entrée ou sortie)

Paramètres
ucPinle numéro de la broche
Renvoie
false ou true, si le mode de la broche est eModeInputPullUp ou eModeOutputHigh la valeur booléenne renvoyée est l'inverse de l'état électrique.
Exemples:
gpio/demo_gpio.c.
static eDpEdge eGpioPinEdge ( uint8_t  ucPin)
inlinestatic

Front(s) déclenchant d'une entrée.

Paramètres
ucPinle numéro logique de l'entrée concernée
Renvoie
le ou les fronts déclenchants, eEdgeNone si erreur
static eDpMode eGpioPinMode ( uint8_t  ucPin)
inlinestatic

Lecture du type actuel d'une broche.

Paramètres
ucPinle numéro de la broche
gpiopointeur sur le GPIO
Renvoie
le type, eModeError si erreur
static void* pGpioUserData ( void  )
inlinestatic

Données d'un gestionnaire d'interruption utilisateur.

Renvoie
pointeur sur les données, NULL si pas de données ou si erreur
static vGpioCallback pvGpioCallback ( void  )
inlinestatic

gestionnaire de changement d'état

Renvoie
callback
uGpioMask uGpioReadAll ( uGpioMask  uPinMask)

Lecture de l'état binaire d'un ensemble de broches.

La lecture est possible sur les entrées et les sorties.

Paramètres
uPinMaskmasque de sélection des broches à lire, un bit à 1 indique que la broche correspondante doit être lue (bit 0 pour la broche 0, bit 1 pour la broche 1 ...). -1 pour lire toutes les broches.
Renvoie
l'état des broches, chaque bit correspond à l'état de la broche correspondante (bit 0 pour la broche 0, bit 1 pour la broche 1 ...)
void vGpioPoll ( void  )

Scrutation des broches.

Cette fonction scrute les broches qui ont un front de déclenchement différent de eEdgeNone (modifié à l'aide de vGpioSetPinEdge()).
Si un front valide survient sur une de ses broches, la fonction définie à l'aide de vGpioSetCallback() est appelée.
Cette fonction doit être appelée par la boucle principale le plus souvent possible. Un traitement permet de supprimer les rebonds.

static void vGpioSetCallback ( vGpioCallback  callback)
inlinestatic

Modification du gestionnaire de changement d'état.

Paramètres
callbackfonction définie par l'utilisateur, NULL pour désactiver
void vGpioSetPinEdge ( uint8_t  ucPin,
eDpEdge  edge 
)

Réglage du ou des front(s) déclenchant d'une entrée.

Paramètres
ucPinle numéro logique de l'entrée concernée
edgefront déclenchant (eEdgeNone désactive la détection de front et l'éxécution du gestionnaire d'interruption)
static void vGpioSetPinMode ( uint8_t  ucPin,
eDpMode  eMode 
)
inlinestatic

Modifie le mode de la broche.

Paramètres
ucPinle numéro de la broche
eModemode
Exemples:
gpio/demo_gpio.c.
static void vGpioSetUserData ( void *  udata)
inlinestatic

Modification données utilisateur.

Paramètres
udatadonnées passée au callback
void vGpioToggle ( uint8_t  ucPin)

Bascule l'état d'une sortie.

Paramètres
ucPinle numéro de la broche
Exemples:
gpio/demo_gpio.c.
void vGpioToggleAll ( uGpioMask  uPinMask)

Bascule de l'état binaire de plusieurs sorties.

Paramètres
uPinMaskmasque de sélection des broches à modifier, un bit à 1 indique que la broche correspondante doit être modifiée (bit 0 pour la broche 0, bit 1 pour la broche 1 ...). -1 pour modifier toutes les broches.
void vGpioWrite ( uint8_t  ucPin,
bool  bValue 
)

Modifie l'état d'une sortie.

Paramètres
ucPinle numéro de la broche
bValuevaleur
Exemples:
gpio/demo_gpio.c.
void vGpioWriteAll ( uGpioMask  uPinMask,
bool  bValue 
)

Modification de l'état binaire de plusieurs sorties.

Cette fonction n'a aucune action sur les broches qui ne sont pas en sortie.

Paramètres
uPinMaskmasque de sélection des broches à modifier, un bit à 1 indique que la broche correspondante doit être modifiée (bit 0 pour la broche 0, bit 1 pour la broche 1 ...). -1 pour modifier toutes les broches.
bValuevaleur binaire à appliquer aux broches