Je suis entrain de mettre en place un code de gestion I2C en me basant sur un exemple de Microchip. Mais je n'arrive pas à comprendre un passage de leur exemple...
Voici le bout qui m’intéresse :
Code : Tout sélectionner
// EEPROM DATA OBJECT
typedef struct
{
uint16_t *buff;
uint16_t n;
uint16_t addr;
uint16_t csel;
} I2CEMEM_DATA;
// EEPROM DRIVER OBJECT
typedef struct
{
uint16_t cmd;
I2CEMEM_DATA *oData;
void ( *init ) ( void * );
void ( *tick ) ( void * );
}
I2CEMEM_DRV;
#define I2CSEMEM_DRV_DEFAULTS \
{ \
0, ( I2CEMEM_DATA * ) 0, ( void(*) ( void * ) ) I2CEMEMinit, ( void(*) ( void * ) ) I2CEMEMdrv \
}
void I2CEMEMinit( I2CEMEM_DRV * );
void I2CEMEMdrv( I2CEMEM_DRV * );
Du coup dans mon code si je fais :
Code : Tout sélectionner
i2cmem.init( &i2cmem ); J'appelle la fonction "I2CEMEMinit" et avec le code suivant la fonction "I2CEMEMdrv"
Code : Tout sélectionner
i2cmem.tick( &i2cmem ); Je sais que void * est un pointeur générique mais je schématise mal tout se qui se passe. Quelqu'un peut m'éclaircir ?
Merci pour votre soutien.
