![]() |
AvrIO
1.4.5
Bibliothèque C modulaire pour ATMEL AVR
|
Ce module utilise le coupleur I2C interne du microcontrôleur et travaille sous interruption.
La macro AVRIO_TWI_ENABLE doit être définie (dans le fichier avrio-config.h ou à la compilation), et dans ce cas, le fichier avrio-board-twi.h permet de configurer le module et de l'adapater à la carte utilisée.
Le module dispose de deux modes :
Les deux modes peuvent être validés ou non dans avrio-board-twi.h à l'aide des macros TWI_MASTER_ENABLE et TWI_SLAVE_ENABLE. Un mode au moins, doit être validé, et il est possible de les valider tous les deux dans le cas d'un environnement multi-maîtres (les confilts sont gérés).
L'implémentation sous interruption est conçue pour être utilisée dans les routines d'interruption (les portions de code en attente d'interruption sont protégées du dead-lock).
![]() |
Modules | |
Bus I2C en mode esclave | |
Bus I2C en mode maître | |
Configuration du module I2C | |
Structures de données | |
struct | xTwiFrame |
Trame I2C. Plus de détails... | |
Fonctions | |
bool | bTwiIsBusy (void) |
Indique si le module est occupé | |
void | vTwiInit (void) |
Initialise le module. Plus de détails... | |
Macros | |
#define | TWI_DEVICE_ADDR_SIZEOF 1 |
#define | TWI_LENGTH_SIZEOF 1 |
Définitions de type | |
typedef uint8_t | xTwiDeviceAddr |
Adresse d'un circuit sur le bus I2C. | |
typedef struct xTwiFrame | xTwiFrame |
typedef uint8_t | xTwiLength |
Longueur d'une trame. | |
Énumérations | |
enum | eTwiStatus { TWI_SUCCESS = 0, TWI_STATUS_TX = 1, TWI_STATUS_RX = 2, TWI_STATUS_BUSY = 3, TWI_STATUS_LCALL = 5, TWI_STATUS_GCALL = 4, TWI_STATUS_TXBUFFER_EMPTY = 6, TWI_STATUS_ARB_LOST = 7, TWI_ERROR_DATA_NACK = -1, TWI_ERROR_ADDR_NACK = -2, TWI_ERROR_ILLEGAL_START_STOP = -3, TWI_ERROR_INVALID_SPEED = -4, TWI_ERROR_INVALID_LENGTH = -5, TWI_ERROR_BUFFER_FULL = -6, TWI_ERROR_TIMEOUT = -7, TWI_ERROR_ILLEGAL_CODE = -8, TWI_ERROR_INVALID_DEVICE = -9, TWIMEM_ERROR_READ = -10 } |
Codes d'erreur et d'état. Plus de détails... | |
enum eTwiStatus |
Codes d'erreur et d'état.
Les codes d'erreur sont négatifs, les codes d'état sont positifs ou nuls.
Définition à la ligne 94 du fichier twi.h.
void vTwiInit | ( | void | ) |
Initialise le module.
Ni la vitesse de transmission (eTwiSetSpeed()), ni l'adresse esclave locale (vTwiSetDeviceAddress()) ne sont configurées.