Не понятно почему так работает...

Вопросы программирования в системе Ардуино
Unikus
Сообщения: 3
Зарегистрирован: 15 окт 2021, 19:54

Не понятно почему так работает...

Сообщение Unikus » 15 окт 2021, 20:12

Делаю некоторые эксперименты с кодом...
void loop(){
int i,n,sum;

char customKey = customKeypad.getKey();

switch (customKey) {
case '1':n = 1;
Serial.println(n);
sum = n*10 + n;
Serial.println(sum);
break;
}

switch (customKey) {

case '2':n = 2;
Serial.println(n);
sum = sum*10 + n;
Serial.println(sum);
break;
}
}

Описание, по customKey идёт считывание кнопки с матричной клавиатуры. И в зависимости от нажатой кнопки получить результат... Что получается в итоге : при нажатии кнопки "1" результат "1", "11 " ... при "2" результат "2", "112" ... То есть, значение "sum" для второй кнопки берётся из первого "case" ? Но ведь она даже не нажималась ... Что происходит ?


Эдуард
Администратор
Сообщения: 484
Зарегистрирован: 30 окт 2016, 20:53

Re: Не понятно почему так работает...

Сообщение Эдуард » 17 окт 2021, 17:54

Здравствуйте!
У вас значение sum во втором блоке зависит от предыдущего состояния sum = sum*10 + n;.
Также непонятно, зачем вам отдельные конструкции switch. Используйте тогда if.

Unikus
Сообщения: 3
Зарегистрирован: 15 окт 2021, 19:54

Re: Не понятно почему так работает...

Сообщение Unikus » 02 ноя 2021, 16:21

Переделал немного код. Ожидалось , что при нажатии кнопки "2" в порт выведется следующая инфо :
2
22
222
2222
Но, получается только :
2
22

..........

int i,n,sum;

char customKey = customKeypad.getKey();

switch (customKey) {
case '1':n = 1;
Serial.println(n);
sum = n*10 + n;
Serial.println(sum);
break;


case '2':n = 2;
Serial.println(n);
for (int i=3; i!=0;i--); {
sum = n*10 + n;
Serial.println(sum);}
break;
}
}

Unikus
Сообщения: 3
Зарегистрирован: 15 окт 2021, 19:54

Re: Не понятно почему так работает...

Сообщение Unikus » 03 ноя 2021, 22:34

Упс... напортачил с синтаксисом... исправил , начало работать.


Вернуться в «Программирование Ардуино»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей