Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1579 connectés 

  FORUM HardWare.fr
  Programmation
  C

  erreur de syntaxe, probleme langage C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

erreur de syntaxe, probleme langage C

n°2074773
jcjc07
Posté le 09-05-2011 à 14:34:03  profilanswer
 

voila j'ai un souci, je voudrais créer un programme me permettant d'automatiser l'entretien de cuve ( d'eau )  
des capteur de niveau pour le remplissage, des capteurs de niveaux pour stopper le remplissage , et un capteur pour stopper la vidange quand celle ci est déclancher ....je suis absolument novice, je voudrais enfet que les deux premier point soit autonomes et tourne continuellement,et qu'un utilisateur puisse a tout moment déclancher une vidange, mais aussi le remplissage et un filtrage ... il faudrais alors sortir de la boucle principal ....je me debat un peu et voila se que je suis parvenu a faire...maintenant je bloque un peu je ne sais pas trop quoi faire....MERCI D'AVANCE POUR VOTRE AIDE
 

Code :
  1. #include <p18f452.h>  // cette librairie me bloque lorsque je veux configurer les ports...( 18F452 )  
  2. #define cuve1nivB PORTA.1
  3. #define cuve1nivH PORTA.2
  4. #define cuve2nivB PORTC.0
  5. #define cuve2nivH PORTC.1
  6. #define captvidC1 PORTB.3
  7. #define captvidC2 PORTB.4
  8. #define vidangeC1 PORTD.0
  9. #define vidangeC2 PORTD.1
  10. #define remplisC1 PORTB.7
  11. #define remplisC2 PORTB.6
  12. #define selection PORTA.4
  13. #define confirmer PORTB.0
  14. #define EV1cuve1 PORTD.4
  15. #define EV1cuve2 PORTD.3
  16. #define EV2cuve1 PORTD.7
  17. #define EV2cuve2 PORTD.6
  18. PORTA = 0x..;
  19. PORTB = 0x..;
  20. PORTC = 0x..;
  21. PORTD = 0x..;
  22. void main (void)
  23. {
  24. int cuve1nivB,cuve2nivB,cuve1nivH,cuve2nivH,selection,confirmer;  // BUILD FAILLED : syntaxe error !! ( capteurs de niveau des cuve )  
  25.     if(cuve1nivB==1)
  26.     {
  27.     remplisC1=1;
  28.     }
  29. else
  30. {
  31. if(cuve2nivB==1)
  32.     {
  33.     remplisC2=1;
  34.     }
  35.     else
  36.      {
  37.        if(cuve1nivH==1)
  38.         {
  39.           remplisC1=0;
  40.         }
  41.          else
  42.           {
  43.            if(cuve2nivH==1)
  44.              {
  45.               remplisC2=0;
  46.               return(s);
  47.              }
  48.           }
  49.      }
  50. }
  51.     if(selection=1,confirmer=1)break; // 2BP, permettant a l'opperateur d'intervenir ...  
  52.     printf("selectionner la cuve" );
  53.    
  54.           if(selection=1)printf("cuve1" );
  55.              {
  56.                if(confirmer=1)break;
  57.                printf("selectionner l'opperation sur cuve 1" );
  58.                  {   
  59.                     if(selection=1)printf("remplissage cuve 1" );
  60.                     if(confirmer=1)remplisC1=1;
  61.                            if(cuve1nivH=1)remplisC1=0;else
  62.                            while(1);
  63.                  }
  64.    
  65.                     else
  66.                     if(selection=1)printf("degazage cuve 1" );
  67.                  {
  68.                        if(confirmer=1)EV1cuve1=1,EV2cuve1=2;
  69.                            tempo ( x heures , x minutes);
  70.                        EV1cuve1=0,EV2cuve1=0;
  71.                  }
  72.                     else
  73.                     if(selection=1)printf("vidange cuve 1 " );
  74.                  {
  75.                        if(confirmer=1)vidangeC1=1
  76.                               if(captvidC1=1)tempo( x minutes ) vidangeC1=0;
  77.                               else    while(1)
  78.                  }
  79.                while(1);
  80.              }
  81.           else
  82.           if(selection=1)printf("cuve2" );
  83.                 {
  84.                if(confirmer=1)break;
  85.                printf("selectionner l'opperation sur cuve 2" );
  86.                   {
  87.                     if(selection=1)printf("remplissage cuve 2" );
  88.                        if(confirmer=1)remplisC2=1;
  89.                            if(cuve2nivH=1)remplisC2=0;else
  90.                            while(1);
  91.                   }
  92.                     else                   
  93.                     if(selection=1)printf("degazage cuve 2" );
  94.                   {
  95.                        if(confirmer=1)EV1cuve2=1,EV2cuve2=2;
  96.                            tempo ( x heures , x minutes);
  97.                        EV1cuve2=0,EV2cuve2=0;
  98.                   }
  99.                     else
  100.                     if(selection=1)printf("vidange cuve 2" );
  101.                    {
  102.                         if(confirmer=1)vidangeC2=1;
  103.                         if(captvidC2=1)tempo( x minutes ) vidangeC2=0;
  104.                         else    while(1);
  105.                    }
  106.                 } 
  107.                while(1);
  108.           while(1);
  109.    }


Message édité par gilou le 09-05-2011 à 14:41:20
mood
Publicité
Posté le 09-05-2011 à 14:34:03  profilanswer
 

n°2074777
gilou
Modérateur
Modzilla
Posté le 09-05-2011 à 14:47:56  profilanswer
 

Code :
  1. #define cuve1nivB PORTA.1
  2. ....
  3. int cuve1nivB;

c'est la même chose que  

Code :
  1. int PORTA.1;

Or le point n'est pas autorisé dans les noms de variables en C, d'ou le message du compilateur.
 
De toute façon, avec du code comme

Citation :

   if(selection=1,confirmer=1)break; // 2BP, permettant a l'opperateur d'intervenir ...  


ça a peu de chances de faire ce que tu veux.
 
A+,


Message édité par gilou le 09-05-2011 à 14:54:35

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2074786
jcjc07
Posté le 09-05-2011 à 15:28:41  profilanswer
 

j'entend bien, je sais que ce n'est pas ainsi je demande justement de l'aide ....  
je decouvre a peine la programmation ...  
je ne peut donc pas rennomer les entrées des differents port que j'utilise ?

n°2074792
jcjc07
Posté le 09-05-2011 à 16:12:44  profilanswer
 

comment puis-je donc commander dans mon programme de verifier le niveau logique sur l'entrée concerné ??

n°2074812
Elmoricq
Modérateur
Posté le 09-05-2011 à 17:00:11  profilanswer
 

Comme le dit gilou, tu as peu de chances d'arriver à ce que tu veux avec ton niveau actuel en C. Trop d'erreurs pour le moment, toutes te les corriger demanderait une réécriture de ton code.
 
Le mieux à faire je pense est de potasser un peu le langage. Pas forcément à fond pour commencer, mais il faut commencer à étudier tout de même.
Je conseille généralement l'acquisition du livre "Le Langage C", de Kernighan & Ritchie, une référence en la matière et néanmoins facile d'accès.

n°2074824
gilou
Modérateur
Modzilla
Posté le 09-05-2011 à 17:30:00  profilanswer
 

Citation :

je ne peut donc pas rennomer les entrées des differents port que j'utilise ?


Si, mais pas avec un point dans le nom.
#define cuve1nivB PORTA_1 // la, le renommage devrait coller.
 
En C, un nom que tu peux définir, il ne peut s'écrire qu'avec: les lettres a..z et A..Z, les chiffres 0..9, et l'underscore _ et de plus, il ne doit pas commencer par un chiffre.
 
A+,


Message édité par gilou le 09-05-2011 à 17:30:41

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2080997
Metatr0n
http://www.microcontest.com
Posté le 07-06-2011 à 13:17:06  profilanswer
 

Une erreur importante réside dans tes tests :
if(selection=1) par exemple
pour tester l'égalité il faut utiliser == et non pas =
donc écrire if(selection == 1).
Mais comme l'a dit Elmoricq, il y a trop d'erreurs pour le moment, je mentionnais juste celle-ci pour que tu n'aies pas à chercher indéfiniment pourquoi ton code ne marche pas (sachant qu'elle ne pose pas de problème de compilation)


---------------
http://www.microcontest.com - Site de challenges de programmation : Cryptographie - Multimedia - Intelligence Artificielle - Réseaux - Algorithmique - Mathématiques

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  erreur de syntaxe, probleme langage C

 

Sujets relatifs
Buffer / Buffer overflow en C et en JavaProblème affichage Visual Studio
Problème internet explorer + site webProblème vector
Important problème boutons d'executionsAide ! Récupérer le langage binaire d'un fichier.
[C/C++/C#] Aspirateur de sitesErreur D3DERR_INVALIDCALL 
Problème avec un alphabeta en C pour othello 
Plus de sujets relatifs à : erreur de syntaxe, probleme langage C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR