Pages: [1]   Go Down
Author Topic: Quel est l'intérêt de mettre while(1){...} ?  (Read 864 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 32
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai une question simple :
Quel est l'intérêt de faire une boucle while(1){...code...} ?

J'ai vu ceci dans la documentation du "Input/Joystick Shield" de D-Robotics

Je remets le code ici :
Code:
//This input shield use Digital Pin 3,4,5 (3 buttons) and Analog Pin 0,1
(JS)
// // Upload the code to Arduino
// www.dfrobot.com
// Last modified on 24/12/2009
int x=1;
int y=0;
int button_A= 5;
int button_B= 3;
int button_C= 4;
void setup()
{
int i;
for(i=3;i<=5;i++)
pinMode(i, INPUT);
pinMode(LED,OUTPUT);
}
void loop()
{
int val;
while(1)
{
val=analogRead(x); //Read Analog input
if(val>1000||val<20) digitalWrite(LED, HIGH);
else digitalWrite(LED,LOW);
val=analogRead(y);
if(val>1000||val<20) digitalWrite(LED, HIGH);
else digitalWrite(LED,LOW);
if(digitalRead(button_A)==0)
//Check Button A
{
digitalWrite(LED, HIGH);
// Set LED on
}
else digitalWrite(LED,LOW);
if(digitalRead(button_B)==0)
//Check Button B
{
digitalWrite(LED, HIGH);
// Set LED Off
}
else digitalWrite(LED,LOW);
if(digitalRead(button_C)==0)
//Check Button C
{
digitalWrite(LED, HIGH);
}
else digitalWrite(LED,LOW);
}
}

NB : il manque juste de définir le pin de la LED en tête de code

J'ai testé avec et sans le while et je ne vois aucune différence. Mais ça m'intéresse de savoir pourquoi cela a été mis dans ce code.

A+
JC
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 22
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Aucun intérêt en effet, puisque le "loop(){}" a exactement ce fonctionnement de bouclage infini, de type "while(1){}".
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 32
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C'est bien ce qu'il me semblait. Merci de confirmer.
A mon avis c'est extrait d'un code plus long, genre test des valeurs du joystick pour une calibration dans le setup, puis sortie de la boucle avec un break.

A+
JC
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 44
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pas sur de moi mais à mon avis ca sert à rien...
while(1) c'est une boucle infinie et sans break elle ne s'arrête jamais. Là dans ton exemple tu met un while(1) dans un loop(), en gros tu boucle à l'infini a l'intérieur d'un boucle infinie... le code en dessous du while(1) ne sera jamais exécuté, le code au dessus juste une fois.

Edit: Grille par Sebelec  :-[
« Last Edit: July 01, 2010, 10:58:14 am by MadProf » Logged

Pages: [1]   Go Up
Jump to: