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 ---
Forum général sur le langage C !

Modérateur : Jérémy

Pointeur de fonction
Simlock
Membre
Membre
Messages : 21
Enregistré en : mai 2016
Localisation : Sur mon siege

#1 Message par Simlock » jeu. 30 mars 2017 14:46

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 :

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.

Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 46 invités