Signaler

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

Posez votre question BigBelly83 1Messages postés lundi 20 mars 2017Date d'inscription 20 mars 2017 Dernière intervention - Dernière réponse le 20 mars 2017 à 22:42 par [Dal]
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.
Afficher la suite 
Utile
+0
plus moins
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/courses/apprenez-a-programmer-en-c/les-fonctions-1


Dal
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !