Se lancer en C ??

Fermé
Juan~CaRlos Messages postés 4 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 9 mai 2011 - 9 mai 2011 à 10:36
Juan~CaRlos Messages postés 4 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 9 mai 2011 - 9 mai 2011 à 13:45
Bonjour, je souhaite realiser un programme d'automatisation,
voila donc le programme que je commence a realiser, je sais qu'il n'est pas juste mais novice en la matiere je souhaiterais avoir votre point de vu ou de l'aide car je ne retrouve pas toute les erreurs de syntaxes
#include <p18f452.h>

#define cuve1nivB PORTA.1
#define cuve1nivH PORTA.2
#define cuve2nivB PORTC.0
#define cuve2nivH PORTC.1
#define captvidC1 PORTB.3
#define captvidC2 PORTB.4
#define vidangeC1 PORTD.0
#define vidangeC2 PORTD.1
#define remplisC1 PORTB.7
#define remplisC2 PORTB.6
#define selection PORTA.4
#define confirmer PORTB.0
#define EV1cuve1 PORTD.4
#define EV1cuve2 PORTD.3
#define EV2cuve1 PORTD.7
#define EV2cuve2 PORTD.6


void main (void)
{
int(cuvenivB,cuve2nivB,cuve1nivH,cuve2nivH);
if(cuve1nivB=1);
remplisC1=1;
else
if(cuve2nivB=1);
remplisC2=1;
else
if(cuve1nivH=1);
remplisC1=0;
else
if(cuve2nivH=1);
remplisC2=0;
return(s);


while(1);
}
{
if(selection=1,confirmer=1)break;
printf("selectionner la cuve");

if(selection=1)printf("cuve1");
{
if(confirmer=1)break;
printf("selectionner l'opperation sur cuve 1");
{
if(selection=1)printf("remplissage cuve 1");
if(confirmer=1)remplisC1=1;
if(cuve1nivH=1)remplisC1=0;else
while(1);
}

else
if(selection=1)printf("degazage cuve 1");
{
if(confirmer=1)EV1cuve1=1,EV2cuve1=2;
tempo ( x heures , x minutes);
EV1cuve1=0,EV2cuve1=0;
}
else
if(selection=1)printf("vidange cuve 1 ");
{
if(confirmer=1)vidangeC1=1
if(captvidC1=1)tempo( x minutes ) vidangeC1=0;
else while(1)
}
while(1);
}
else
if(selection=1)printf("cuve2");
{
if(confirmer=1)break;
printf("selectionner l'opperation sur cuve 2");
{
if(selection=1)printf("remplissage cuve 2");
if(confirmer=1)remplisC2=1;
if(cuve2nivH=1)remplisC2=0;else
while(1);
}
else
if(selection=1)printf("degazage cuve 2");
{
if(confirmer=1)EV1cuve2=1,EV2cuve2=2;
tempo ( x heures , x minutes);
EV1cuve2=0,EV2cuve2=0;
}
else
if(selection=1)printf("vidange cuve 2");
{
if(confirmer=1)vidangeC2=1;
if(captvidC2=1)tempo( x minutes ) vidangeC2=0;
else while(1);
}
}
while(1);
while(1);
}
}

MERCI D'AVANCE


3 réponses

Vicking54 Messages postés 89 Date d'inscription lundi 11 octobre 2010 Statut Membre Dernière intervention 17 mai 2011 26
9 mai 2011 à 11:56
Bonjour, plusieurs choses :

- pour un if il ne faut pas mettre de ';' à la fin de la ligne
- dans la condition du if pour savoir si une variable est égale à une autre il faut mettre '==' et non '=' le '=' sert pour l'affectation et la '==' sert pour la comparaison
- ensuite les while(1) ??? pourquoi passer par des boucles infinies, sachant que certain while(1) ne sera jamais pris en compte, et ne pourra jamais s'arrèter donc attention
Beaucoup de soucis et dur de corriger car je comprend pas tous ce que tu veux faire

#include <p18f452.h> 
#define cuve1nivB PORTA.1 
#define cuve1nivH PORTA.2 
#define cuve2nivB PORTC.0 
#define cuve2nivH PORTC.1 
#define captvidC1 PORTB.3 
#define captvidC2 PORTB.4 
#define vidangeC1 PORTD.0 
#define vidangeC2 PORTD.1 
#define remplisC1 PORTB.7 
#define remplisC2 PORTB.6 
#define selection PORTA.4 
#define confirmer PORTB.0 
#define EV1cuve1 PORTD.4 
#define EV1cuve2 PORTD.3 
#define EV2cuve1 PORTD.7 
#define EV2cuve2 PORTD.6 


void main (void) 
{ 
int cuvenivB,cuve2nivB,cuve1nivH,cuve2nivH; 

if(cuve1nivB==1)
{
   remplisC1=1;
} 
else
{ 
   if(cuve2nivB==1)
   {
      remplisC2=1; 
   }
   else
   { 
      if(cuve1nivH==1)
      {
         remplisC1=0; 
      }
      else
      { 
         if(cuve2nivH==1)
         {
             remplisC2=0; 
             return(s); 
         }
      }
   }
}

// Pourquoi ???? Incompréhensible le reste qu'est ce que sélection il est 
//définit mais jamais initialisé
while(1); 
{ 
   if(selection=1,confirmer=1)
      break;

   printf("selectionner la cuve"); 

   if(selection=1)
   { 
      printf("cuve1"); 
      if(confirmer=1)
         break;
      printf("selectionner l'opperation sur cuve 1"); 
    }
if(selection=1)printf("remplissage cuve 1"); 
if(confirmer=1)remplisC1=1; 
if(cuve1nivH=1)remplisC1=0;else 
while(1); 
} 

else 
if(selection=1)printf("degazage cuve 1"); 
{ 
if(confirmer=1)EV1cuve1=1,EV2cuve1=2; 
tempo ( x heures , x minutes); 
EV1cuve1=0,EV2cuve1=0; 
} 
else 
if(selection=1)printf("vidange cuve 1 "); 
{ 
if(confirmer=1)vidangeC1=1 
if(captvidC1=1)tempo( x minutes ) vidangeC1=0; 
else while(1) 
} 
while(1); 
} 
else 
if(selection=1)printf("cuve2"); 
{ 
if(confirmer=1)break; 
printf("selectionner l'opperation sur cuve 2"); 
{ 
if(selection=1)printf("remplissage cuve 2"); 
if(confirmer=1)remplisC2=1; 
if(cuve2nivH=1)remplisC2=0;else 
while(1); 
} 
else 
if(selection=1)printf("degazage cuve 2"); 
{ 
if(confirmer=1)EV1cuve2=1,EV2cuve2=2; 
tempo ( x heures , x minutes); 
EV1cuve2=0,EV2cuve2=0; 
} 
else 
if(selection=1)printf("vidange cuve 2"); 
{ 
if(confirmer=1)vidangeC2=1; 
if(captvidC2=1)tempo( x minutes ) vidangeC2=0; 
else while(1); 
} 
} 
while(1); 
while(1); 
} 
} 
1
Juan~CaRlos Messages postés 4 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 9 mai 2011
9 mai 2011 à 13:37
deja merci beaucoup, ça n'a peut etre pas l'air mais je vais pas mal avancé :D

enfet, je voudrai faire un petit panneau avec lafficheur et deux BP, selection et confirmer, le premier me permettant de me deplacer dans le menu le second servant juste a entrer dedans ....
ensuite, une idée pour la config des ports ??

j'ai voulus entrer un truc du genre :
PORTA = 0x16;
PORTB = 0x19;
....
mais on me renvoi a une "pré-configue" dans 18f452.h me disant que c'est pas possible ....
0
Juan~CaRlos Messages postés 4 Date d'inscription lundi 9 mai 2011 Statut Membre Dernière intervention 9 mai 2011
9 mai 2011 à 13:45
et enfet, je voudrais que ma boucle principal soit la 1er partie avec les 4 if , quelle tourne en continue , et uniquement lorsqu'un opperateur intervient sur le tableau de commande cette boucle soit "cassée" ....
0