bonjour à tous,
je vous explique le projet en c++, je suis entrain de faire un code test pour faire une minuterie (un compteur) qui incrémente ou décrémente selon le choix voulu pour ensuite l'adapter sur un arduino qui aura donc
1 BT pour les minutes, 1 BT pour les secondes, 1 BT pour lancer ou stopper le compteur.
donc sur le code si dessous vous avez mon code actuel ou je ne comprend pas,
pourquoi la décrentation ne va pas jusqu'a 0 M : 0 S que je lance le compteur quand je saisie 0
alors qui commence bien avec les secondes que j'ai indiquer manuellement puis s'arrêt juste à la décrementation des itération des secondes standard quand il arrivent a zeros.
il ne continuer pas l'itération jusqu'a que le minute ne soit a zeros aussi 0 m : 0s
J'espère avoir été assez clair dans la description du problème, merci d'avance de votre aide je suis dans mes début avec le language c++.
ps les fonctions ne sont pas tous déclarer sur le Main car je ne trouver pas mon problème donc j'ai recommencer un un bloc de code sur le Main directement!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151 //### fichier_baseC++.cpp #include <iostream> #include<unistd.h> // pour le sleep using namespace std; // execution la fonction std par défault // Etat pour le Bouton MIN unsigned short BT_MIN {0}; unsigned short BT_SEC {0}; unsigned short Bt_Start {0}; unsigned short Bt_Stop {1}; unsigned short Etat_MIN {0}; // = true bool Etat_Start {0}; //################################################################################# // ##### réglage manuel des minutes et secondes ##### unsigned short Manuel_Minutes {2}; // décrentation, des Minutes régler manuellement unsigned short Manuel_Secondes {20}; // décrentation, des Secondes régler manuellement unsigned short STD_Secondes {59}; // fonction Standard du temps des secondes. unsigned short TempsEcouleMin ; // sauvegarde la décrentation de " M " unsigned short NewManuel_Minutes ; // nouvelle valeur minute après décrémentation. unsigned short set_S {0}; // remise à zeros, des secondes //################################################################################ // ### fonctions : ### void Clear() // fonction pour effacer la console { cout << "\x1B[2J\x1B[H"; } void compteur_STD_Secondes() // FONCTION SECONDES STANDARD { do { //if( STD_S < 60 ) // tant que "S" est inférieur à 60, on décrémente -1 puis fera l'itération jusqu'a 0, qui sera alors FALSE et qui sortira de la boucle. //{ cout << "\n\n [[ " << Manuel_Minutes << " M : " << STD_Secondes << " S ]] minuterie lancer \n\n"; sleep(1); STD_Secondes--; } while(STD_Secondes < 60); } void compteur_Manuel_SEC() // FONCTION SECONDES POUR REGLAGE MANUEL { while(Manuel_Secondes < 50) { if( Manuel_Minutes < 50 ) // tant que "S" est inférieur à 60, on décrémente -1 puis fera l'itération jusqu'a 0, qui sera alors FALSE et qui sortira de la boucle. { //S = s; // affiche la décrémentation des minutes et secondes. cout << "\n\n [[ 1/ lance les secondes regler manuellement\n\n"; cout << "[[ " << Manuel_Minutes << " M : " << Manuel_Secondes << " S ]] Secondes la minuterie\n\n"; sleep(1); Manuel_Secondes--; } } } void compteur_General() // fonction du compteur Minutes et Secondes { if(Manuel_Secondes < 50) // si les secondes du compteur sont infèrieur à 50 est lancer { compteur_Manuel_SEC(); // execute l'iteration des secondes régler manuellement } else { do { Manuel_Minutes--; cout << "\n\n [[ 2/ lance les secondes regler Standard \n\n"; cout << " ### exécution de boucle itération pour les Minute [XX] ### " << endl; cout << "\n\n ### [[ " << Manuel_Minutes << " Minute décrementé ]] ### \n\n"; // décrémentation des minutes compteur_STD_Secondes(); continue; } // tant que l'expression est vrai ont execute le bloc de code si dessus while( Manuel_Minutes < 60 ); cout << "\n\n########################## " << endl; cout << "### minuterie terminer ### " << endl; cout << "##########################\n\n" << endl; cout << "\n\n Bip Bip Bip Bip Bip Bip Bip Bip "; } } //################################################################################# //################################################################################ //################################################################################ // intput (D'ENTREE) du programme. // base du fichier c++ int main () { cout << "\n ##*appui sur Bt_StartStop [ 0 ], pour lancer la minuterie ou sinon sur [ 1 ] ##"; cin >> Etat_Start; //bool LAnceMinute = Bt_StartStop == 0; // variable logique pour si la condition est vrai on lance la minuterie. cout << "\n\n\n\n########################\n" << endl; cout << "lancement du programme \n" << endl; cout << "########################\n\n" << endl; do { cout << "\n\n### [[ --> 01 <-- ]]\n"; cout << "### [[ " << Manuel_Minutes << " : " << Manuel_Secondes << " S]] ### \n\n"; // décrémentation du compteur Manuel_Secondes--; sleep(1); } while ( Manuel_Secondes < 50 ); NewManuel_Minutes = Manuel_Minutes; //NewManuel_Minutes--; if (( NewManuel_Minutes < 60 ) || ( STD_Secondes < 60 )) { NewManuel_Minutes--; while ( STD_Secondes < 60 ) { cout << "\n\n### [[ Deux ]]\n"; cout << " ### [[ " << NewManuel_Minutes << " : " << STD_Secondes << " S]] ### \n\n"; // décrémentation du compteur STD_Secondes--; sleep(1); } } return 0; } // fin de la fonction (main) du programme OUTPUT (Sortie).
Partager