deux while

deux while - C - Programmation

Marsh Posté le 23-01-2009 à 18:48:41    

Bonjour a tous,
Pour le programmation d'un PIC j'ai fait le programme suivant :

Code :
  1. // Commande de la voiture électrique
  2. #include std84.h
  3. #include bit84.h
  4. #define demit portb & 0x10
  5. #define prog portb & 0x20
  6. void main()
  7. {
  8. trisb = 0b11110000; // définition des portes   entrées : B4567   sorties : B0123
  9. trisa = 0b00011;    // sorties : A234
  10. portb.2 = 1; //Enable A toujours a 1
  11. porta.3 = 1; //Enable B toujours a 1
  12. for(;;) // Bouclage infini : le programme scrute le niveau des ports
  13. while (prog)
  14. {
  15.     delays(2);
  16.     portb.3 = 1;
  17.     delays(1);
  18.     porta.4 = 1;
  19.     delays(1);
  20.     porta.4=!porta.4;
  21.     porta.2 = 1;
  22.     delays(1);
  23.     porta.2=!porta.2;
  24.     porta.4 = 1;
  25.     delays(1);
  26.     porta.4=!porta.4;
  27.     portb.3=!portb.3;
  28.     delays(2);
  29. }
  30. while (demit)
  31. {
  32.     portb.1 = 1;
  33.     porta.4 = 1;
  34.     delays(1);
  35.     portb.1=!portb.1;
  36.     porta.4=!porta.4;
  37.     delays(1);
  38.     portb.3 = 1;
  39.     porta.2 = 1;
  40.     delays(1);
  41.     portb.3=!portb.3;
  42.     porta.2=!porta.2;
  43. }
  44. }


Mais le logiciel de simulation ne prend pas en compte mon deuxième while, il ne voit que celui en première position.
Aidez moi SVP

Reply

Marsh Posté le 23-01-2009 à 18:48:41   

Reply

Marsh Posté le 23-01-2009 à 19:44:29    

Parce que ton premier while est exécuté une infinité de fois par la boucle infinie for(;;) puisque c'est son instruction.
Si tu veux que ce soient les deux boucles qui soient effectuées une infinité de fois, il faut faire
for(;;) { while(...) {...} while(...) {...} }
A+,


Message édité par gilou le 23-01-2009 à 19:44:43

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 23-01-2009 à 19:58:46    

Ahhhhhhhhhh ok merci beaucoup tite erreur mais bon je débute ^^

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed