Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
Pointeur de fonction
Bonjour !
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 :
Du coup dans mon code si je fais :
J'appelle la fonction "I2CEMEMinit" et avec le code suivant la fonction "I2CEMEMdrv"
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.
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.
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 38 invités