Вс сен 10, 2023 13:54:43
if (событие) {та самая функция}
int key() {
int val = analogRead(5);
if (val < 50) return 3;
else if (val < 513) return 4;
else if (val < 683) return 5;
else if (val < 768) return 6;
else if (val < 819) return 7;
else if (val < 853) return 8;
else if (val < 878) return 9;
else if (val < 896) return 10;
else if (val < 910) return 11;
else if (val < 922) return 12;
else if (val < 931) return 13;
else if (val < 939) return 14;
else return 0;
}
int p, r, c;
long randNumber;
void setup() {
Serial.begin(9600);
//pinMode(A5, INPUT_PULLUP);
for (p = 3; p < 15; p++) {
pinMode(p, OUTPUT);
digitalWrite(p, LOW);
}
}
void loop() {
label:
randNumber = random(3, 14);
if (r == randNumber) { goto label; }
r = randNumber;
digitalWrite(randNumber, HIGH); // включает светодиод
for (c = 0; c < 22222; c++) { // цикл-таймер
if (randNumber == key()) {
digitalWrite(randNumber, LOW);
Serial.print("button");
Serial.print(":");
Serial.println(key());
delay(100);
goto label;
} else if (key() != 0 && randNumber != key()) {
Serial.print("!button");
Serial.print(":");
Serial.println(key());
digitalWrite(randNumber, LOW);
delay(100);
goto label;
} //else if
} //for
} //void loop()
Вс сен 10, 2023 20:04:28
Пн сен 11, 2023 10:01:23
switch(key() ){
case 0: LED1_TOGGLE;break;
case 1: LED2_TOGGLE;break;
.........
}
Пн сен 11, 2023 12:16:51
Пн сен 11, 2023 13:09:02
loop - это уже отдельная функция.rss-999 писал(а):Все что в loop вынести в отдельную функцию
В какую "эту" ? И что значит передать "нажатие кнопок" ? В функцию можно передавать переменные, в виде параметров. Физические явление передать туда невозможно.rss-999 писал(а):как передавать в эту функцию нажатия кнопок?
Пн сен 11, 2023 16:08:50
Пн сен 11, 2023 16:17:04
Вт сен 12, 2023 07:11:37
int key() {
int val = analogRead(5);
if (val < 50) return 3;
else if (val < 513) return 4;
else if (val < 683) return 5;
else if (val < 768) return 6;
else if (val < 819) return 7;
else if (val < 853) return 8;
else if (val < 878) return 9;
else if (val < 896) return 10;
else if (val < 910) return 11;
else if (val < 922) return 12;
else if (val < 931) return 13;
else if (val < 939) return 14;
else return 0;
} //int key()
int abc() {
int r, c;
long randNumber;
label:
randNumber = random(3, 14);
if (r == randNumber) {goto label;}
r = randNumber;
digitalWrite(randNumber, HIGH); // включает светодиод
for (c = 0; c < 22222; c++) { // цикл-таймер
if (randNumber == key()) {
digitalWrite(randNumber, LOW);
delay(100);
continue;
} else if (key() != 0 && randNumber != key()) {
digitalWrite(randNumber, LOW);
delay(100);
continue;
} //else if
} //for
} //int abc()
void setup() {
Serial.begin(9600);
randomSeed(analogRead(17));
for (int p = 3; p < 15; p++) {
pinMode(p, OUTPUT);
digitalWrite(p, LOW);
}
}
void loop() {
abc();
} //void loop()
Вт сен 12, 2023 16:14:01
for (c = 0; c < 22222; c++) { // цикл-таймер
if (randNumber == key()) {
digitalWrite(randNumber, LOW);
delay(100);
continue;
} else if (key() != 0 && randNumber != key()) {
digitalWrite(randNumber, LOW);
delay(100);
continue;
} //else if
} //for
int abc() {
int r, c;
long randNumber;
label:
randNumber = random(3, 14);
if (r == randNumber) {goto label;}
r = randNumber;
Вт сен 12, 2023 21:04:51