CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Gestion switch case

jerepout
jerepout
Niveau 1
26 juillet 2018 à 10:41:03

Bonjour à tous,
sauriez vous comment sortir d'un case switch après un temps donné?
En gros, j'aimerai allumé ma LED que 1 min, et qu'elle s'éteigne ensuite. Or, pour l'instant, elle s'allume indéfiniment.
Merci pour votre aide
switch(choix) { case 1: while(d<10000){ d++; GPIO_WriteLow(GPIOC,GPIO_PIN_1); GPIO_WriteLow(GPIOB,GPIO_PIN_1); GPIO_WriteLow(GPIOB,GPIO_PIN_2); GPIO_WriteLow(GPIOB,GPIO_PIN_3); } //d=0; // choix=0; break; case 2: while(d<1000){ d++; GPIO_WriteHigh(GPIOB,GPIO_PIN_1); GPIO_WriteHigh(GPIOC,GPIO_PIN_1); //Verte GPIO_WriteLow(GPIOB,GPIO_PIN_2); GPIO_WriteLow(GPIOB,GPIO_PIN_3); } }

stacksmashing
stacksmashing
Niveau 6
26 juillet 2018 à 11:38:50


switch(choix)
{
case 1: while(d<10000){
d++;
GPIO_WriteLow(GPIOC,GPIO_PIN_1);
GPIO_WriteLow(GPIOB,GPIO_PIN_1);
GPIO_WriteLow(GPIOB,GPIO_PIN_2);
GPIO_WriteLow(GPIOB,GPIO_PIN_3);
}
//d=0;
// choix=0;
break;

case 2:
while(d<1000){
d++;
GPIO_WriteHigh(GPIOB,GPIO_PIN_1);
GPIO_WriteHigh(GPIOC,GPIO_PIN_1); //Verte
GPIO_WriteLow(GPIOB,GPIO_PIN_2);
GPIO_WriteLow(GPIOB,GPIO_PIN_3);
}

}

Tu te sers de ces while pour compter 1 minute ? Sur arduino tu as des bibliothèques pour faire dormir le programme pendant le temps voulu.

Sinon, ton bout de code ne montre pas pourquoi la led reste allumée. Si tu as mis ce morceau de code dans la fonction loop() c'est normal que ce code se répète et donc que la led soit toujours allumée. Si le problème est ailleurs poste le code complet pour voir d'où ça vient.

jerepout
jerepout
Niveau 1
26 juillet 2018 à 14:41:12

Bonjour ne ne travaille pas sur arduino, je code en C. OUi, c'est dans la boucle while(1)

MrAnge
MrAnge
Niveau 10
26 juillet 2018 à 16:03:07

si c'est pas arduino c'est raspberry ?

Du coup en C tu as la fonction Sleep(1000), qui permet mettre en pause le processus (l'argument passer est le temps en milliseconde)

stacksmashing
stacksmashing
Niveau 6
26 juillet 2018 à 16:37:42

En gros, j'aimerai allumé ma LED que 1 min
OUi, c'est dans la boucle while(1)

Selon ton cas tu dois t'arranger avec des flags, par exemple :

int une_seule_fois = 0 ;

while(1){

if(!une_seule_fois){
/* Allumer l'ampoule */
une_seule_fois = 1 ;
}

}

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment