AvrIO  1.4.5
Bibliothèque C modulaire pour ATMEL AVR
Bus I2C avec coupleur USI

Description détaillée

Ce module permet de gérer un bus I2C avec un coupleur de type USI.

Graphe de collaboration de Bus I2C avec coupleur USI:

Fonctions

uint8_t ucTwiUsiSlaveRead (void)
 Lit un octet dans le buffer de réception. Plus de détails...
 
void vTwiUsiSlaveInit (uint8_t ucOwnAddress)
 Initialise l'interface USI en mode I2C Esclave. Plus de détails...
 
void vTwiUsiSlaveRegisterTxHandler (vTwiUsiSlaveHandler pxUxerTxHandler)
 Enregistre la fonction de gestion de transmission utilisateur. Plus de détails...
 
void vTwiUsiSlaveWrite (uint8_t ucData)
 Ecrit un octet dans le buffer de transmission. Plus de détails...
 
bool xTwiUsiSlaveCharIsReceived (void)
 Renvoie true si le buffer de réception contient des données.
 
bool xTwiUsiSlaveTxBufferIsEmpty (void)
 Renvoie true si le buffer de transmission est vide.
 

Définitions de type

typedef void(* vTwiUsiSlaveHandler) (void)
 Fonction de gestion d'un événement Esclave.
 

Documentation des fonctions

uint8_t ucTwiUsiSlaveRead ( void  )

Lit un octet dans le buffer de réception.

Cette fonction bloque en attente d'un octet transmis par le maître. Il est possible d'utiliser xTwiUsiSlaveCharIsReceived() pour éviter ce blocage.

Renvoie
Octet lu
Exemples:
net/i2c/slave/usi/demo_i2c_slave_usi.c.
void vTwiUsiSlaveInit ( uint8_t  ucOwnAddress)

Initialise l'interface USI en mode I2C Esclave.

Les interruptions doivent être validées pour que le module fonctionne.

Paramètres
AdresseI2C à laquelle l'esclave doit répondre
Exemples:
net/i2c/slave/usi/demo_i2c_slave_usi.c.
void vTwiUsiSlaveRegisterTxHandler ( vTwiUsiSlaveHandler  pxUxerTxHandler)

Enregistre la fonction de gestion de transmission utilisateur.

Le gestionnaire est appelé par la routine d'interruption du module USI esclave lorsqu'elle reçoit une demande de lecture et que le buffer de transmission est vide. Il faut donc écrire un octet dans le buffer de transmission avec vTwiUsiSlaveWrite().

Avertissement
Le fonction de gestion est exécutée sous interruption, il faut donc être très bref !
Paramètres
pxUxerTxHandlerPointeur sur la fonction ou 0 pour retirer la fonction.
Exemples:
net/i2c/slave/usi/demo_i2c_slave_usi.c.
void vTwiUsiSlaveWrite ( uint8_t  ucData)

Ecrit un octet dans le buffer de transmission.

L'octet sera transmis au maître lors de son prochaine accès en lecture. Cette fonction bloque en attente d'espace libre si le buffer est plein.

Paramètres
ucDataOctet à écrire
Exemples:
net/i2c/slave/usi/demo_i2c_slave_usi.c.