Bonjour,
voila je suis entrain de faire un petit programme, et je me trouve devant un petit problême, après compilation, j'ai cette erreur:
voila mon morceau de programme:undefined behavior:the order of volatile accesses is undifined in the statement
Il s'agit que des sous programmes, et l'erreur se situe au niveau de:Code:/***********Déclaration des sous programmes*****/ void conv_AD(void); void calcul (void); /********** Déclaration des variables ************/ float Vbatt=0.00, Van1; int resultV; /**********************/ void conv_AD(void) { ADCON0=0x05; // Sélection AN1/ADON = 1. ADCON2=0xA5; // Justification à droite/Tps d'acquisition=4Tad/Horloge de conversion=16Tosc GO_DONE=1; // Start Conversion A/N while(GO_DONE); // attend EOC GO_DONE=0; // Fin Conversion A/N } /********************/ void calcul (void) { resultV=((ADRESH*256)+ADRESL); //Récupération du résultat sur 10 Bits Van1 = ((float)resultV) * q; //Calcul de la tension présente sur AN1 (Float) Vbatt=(float)(Van1*6.8921); // Calcul de la tension }
Je suppose que l'erreur vient que les fonctions sont déclaré en void...(void), comment dois je les déclarer en fonction du type de paramètre a transférer?Code:resultV=((ADRESH*256)+ADRESL);
Je vous remercie
-----