Ce module permet de transmettre ou reçevoir des informations sur le bus I2C en tant que maître.
La macro TWI_MASTER_ENABLE dans avrio-board-twi.h pour valider ce module.
Les conflits de bus sont gérés (arbitrage).
Dépendances:
|
typedef int8_t | xTwiId |
| Identifiant d'une trame.
|
|
Lecture d'une trame reçue.
- Paramètres
-
pxFrame | Pointeur sur la trame où sont stockés les octets à envoyer. |
- Renvoie
- TWI_SUCCESS si la trame a été totalement lue.
- Un code négatif en cas d'erreur
Lecture de l'état du module maître.
- Paramètres
-
xFrameId | L'identifiant de la trame (renvoyé par xTwiTrySend(), xTwiTryReceive() ou xTwiTrySendReceive()). |
pxLength | Pointeur sur une variable qui contiendra le nombre d'octets transmis ou reçus (0 si TWI_STATUS_BUSY). Si l'utilisateur ne souhaite pas utiliser cette valeur, il suffit de passer un pointeur NULL. |
- Renvoie
- TWI_SUCCESS si la trame a été totalement transmise ou reçue.
- TWI_STATUS_BUSY si le module est occupé.
- Un code négatif en cas d'erreur.
Lecture dans une mémoire I2C (Adresse mémoire 16 bits)
- Paramètres
-
usMemAddr | Adresse dans la mémoire |
pxFrame | Pointeur sur la trame |
- Renvoie
- TWI_SUCCESS si une trame a été reçue, un code erreur sinon.
Ecriture dans une mémoire I2C (Adresse mémoire 16 bits)
- Paramètres
-
usMemAddr | Adresse dans la mémoire |
pxFrame | Pointeur sur la trame |
- Renvoie
- TWI_SUCCESS si une trame a été reçue, un code erreur sinon.
Lecture dans une mémoire I2C (Adresse mémoire 8 bits)
- Paramètres
-
ucFisrtByte | Adresse dans la mémoire ou octet de commande à envoyer avant la lecture des octets. |
pxFrame | Pointeur sur la trame |
- Renvoie
- TWI_SUCCESS si une trame a été reçue, un code erreur sinon.
Ecriture dans une mémoire I2C (Adresse mémoire 8 bits)
- Paramètres
-
ucFisrtByte | Adresse dans la mémoire ou octet de commande à envoyer avant l'écriture des octets contenu dans la trame. |
pxFrame | Pointeur sur la trame |
- Renvoie
- TWI_SUCCESS si une trame a été reçue, un code erreur sinon.
Réception d'un octet en mode maître.
Cette fonction est bloquante, et ne retourne qu'après avoir transmis l'octet ou en cas d'erreur.
Un reset du timer chien de garde est effectué dans la boucle d'attente.
Cette fonction ne devrait pas être utilisé pour recevoir une suite d'octets car elle déclenche un START et un STOP après chaque réception (risque de conflit). Pour recevoir une suite d'octets, il est préférable d'utiliser eTwiReceive().
- Paramètres
-
xDeviceAddr | Adresse I2C du circuit |
pucByte | Pointeur sur l'octet reçu. |
- Renvoie
- TWI_SUCCESS si la trame a pu être transmise, le code erreur sinon.
Réception d'un message en mode maître.
Cette fonction est bloquante, et ne retourne qu'après avoir reçue une trame ou en cas d'erreur.
Un reset du timer chien de garde est effectué dans la boucle d'attente.
- Paramètres
-
pxFrame | Pointeur sur la trame où seront stockés les octets reçus |
- Renvoie
- TWI_SUCCESS si une trame a été reçue, un code erreur sinon.
Emission d'un message en mode maître.
Cette fonction est bloquante, et ne retourne qu'après avoir transmis la trame ou en cas d'erreur.
Un reset du timer chien de garde est effectué dans la boucle d'attente.
- Paramètres
-
pxFrame | Pointeur sur la trame où sont stockés les octets à envoyer. |
- Renvoie
- TWI_SUCCESS si la trame a pu être transmise, le code erreur sinon.
Envoi d'un octet en mode maître.
Cette fonction est bloquante, et ne retourne qu'après avoir transmis l'octet ou en cas d'erreur.
Un reset du timer chien de garde est effectué dans la boucle d'attente.
Cette fonction ne devrait pas être utilisé pour envoyer une suite d'octets car elle déclenche un START et un STOP après chaque envoi (risque de conflit). Pour envoyer une suite d'octets, il est préférable d'utiliser eTwiSend().
- Paramètres
-
xDeviceAddr | Adresse I2C du circuit |
ucByte | l'octet à envoyer. |
- Renvoie
- TWI_SUCCESS si la trame a pu être transmise, le code erreur sinon.
Réception non bloquante d'un message en mode maître.
Cette fonction est non bloquante et la réception se fait sous interruption, cela signifie que la fonction retourne alors que toutes données n'ont pas forcément été reçues.
Elle est prévue pour être utilisée dans un contexte multitâche.
Si cette fonction renvoie l'identifiant d'une trame, il est nécessaire d'appeler réguliérement eTwiGetStatus() tant que celle-ci ne renvoie pas TWI_SUCCESS. Il est alors possible de récupérer la trame reçue grâce à eTwiGetRxFrame().
En dehors d'un contexte multitâche, il est préférable d'utiliser la fonction eTwiSend().
- Paramètres
-
pxFrame | Pointeur sur la trame où sont stockés les octets à envoyer. |
- Renvoie
- Identifiant de la trame (nombre strictement positif) ou 0 si la demande n'a pu être mémorisée, dans ce cas, un nouvel appel est nécessaire (tant que la fonction retourne 0).
Emission non bloquante d'un message en mode maître.
Cette fonction est non bloquante et l'envoi se fait sous interruption, cela signifie que la fonction retourne alors que toutes données ne sont pas forcément transmises.
Elle est prévue pour être utilisée dans un contexte multitâche.
Si cette fonction renvoie l'identifiant d'une trame, il est nécessaire d'appeler réguliérement eTwiGetStatus() tant que celle-ci ne renvoie pas TWI_SUCCESS ou un code erreur.
En dehors d'un contexte multitâche, il est préférable d'utiliser la fonction eTwiSend().
- Paramètres
-
pxFrame | Pointeur sur la trame où sont stockés les octets à envoyer. |
- Renvoie
- Identifiant de la trame (nombre strictement positif) ou 0 si la demande n'a pu être mémorisée, dans ce cas, un nouvel appel est nécessaire (tant que la fonction retourne 0).