Problème C expected ';', ',' or ')' before numeric constant

Fermé
BigBelly83 Messages postés 1 Date d'inscription lundi 20 mars 2017 Statut Membre Dernière intervention 20 mars 2017 - Modifié par baladur13 le 20/03/2017 à 22:44
[Dal] Messages postés 5914 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 28 septembre 2022 - 20 mars 2017 à 22:42
Bonjour,
Je travaille sur un algorithme pour récupérer les mesures d'un capteur en passant par un bus I2C activer une réponse en fonctions de ces données.
Mais lors de la compilation il y a une erreur ''expected ';', ',' or ')' before numeric constant" et je n'arrive pas à la résoudre. Si vous pouvez m'aider svp.

Voici le code :

#define TSL2561 0x48
#include <device.h>
#include <stdio.h>

void WriteI2C(uint8 TSL2561, uint8 0b00000001)
    {
    CyGlobalIntEnable;
    I2C_Start();
    for(;;){
        uint8 wbuffer[2];
        wbuffer[0]=0b00000001;
        I2C_MasterClearStatus(void);
        status=I2C_MasterWriteBuf(TSL2561, wbuffer, 1, I2C_MODE_COMPLETE_XFER);
        while(Ou == (I2C_Masterstatus() & I2C_MSTART_WR_CMPLT)){ }
        I2C_MasterReadBuf(TSL2561, rbuffer, 2, I2C_MODE8COMPLETE8XFER);
        while((I2C_MasterStatus() & I2C_MSTAT_RD_CMPLT)==0);
        if (I2C_MasterReadBuf(TSL2561, rbuffer, 2, I2C_MODE8COMPLETE8XFER)) <= 150 {
        LED_1Write(1);
        return 0;
        }  

}

}


Merci d'avance
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

[Dal] Messages postés 5914 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 28 septembre 2022 1 015
20 mars 2017 à 22:42
Salut,

#define TSL2561 0x48

void WriteI2C(uint8 TSL2561, uint8 0b00000001)  
{

Ce code est illégal en C, car la fonction déclare des paramètres qui ne sont pas des identifiants valides, mais des constantes numériques.

TSL2561 est remplacé par 0x48 parle préprocesseur, et un nom de variable en C ne peut pas débuter par un chiffre. De même pour le 2ème paramètre.

Tu peux lire ceci pour avoir une meilleure idée de comment définir le prototype d'une fonction en C, et comment utiliser une fonction :

https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c/14997-les-fonctions


Dal
0