Нужна помощь по коду

Shturman250
Offline
Зарегистрирован: 17.11.2016

Помогите разобраться где ошибка.

При выполнении данного куска кода контроллер зависает, а должен изменять временную зону

while (buttonA != HIGH)
          {

            if (buttonB == HIGH)
            {
              while (digitalRead(buttonPinB) != LOW)
                delay(10);
              buttonB = LOW;
              TZ++;
              print_TZ = true;

            }

            if (TZ == 13)
              TZ = -11;

            if (print_TZ == true) {
              char sz[10];
              sprintf(sz, "%d", abs(TZ));
              myOLED.clrScr();
              myOLED.setFont(SmallFont);
              myOLED.print(F("Select TimeZone :"), 15, 0);
              myOLED.print(F("Menu to set"), 30, 7);
              myOLED.setFont(BigNumbers);
              myOLED.print(sz, 60, 5);
              print_TZ = false;
            }
            delay(50);
          }

 

asam
Offline
Зарегистрирован: 12.12.2018

опишите предполагаемую логику работы данного куска.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

asam пишет:

опишите предполагаемую логику работы данного куска.

:)))

Shturman250
Offline
Зарегистрирован: 17.11.2016

при нажатии кнопки buttonB происходит изменение часового пояса и отображение его на дисплее,

до тех пок пока не будет нажата кнопка buttonА.

но код зависает , изменяется часовой пояс с 3 на 4 выводится на дисплей ибольше на нажатия любых кнопок не реагирует

mykaida
mykaida аватар
Offline
Зарегистрирован: 12.07.2018

Уважаемый, а на каком моменте Вы предполагаете выйти из while в строке 1?

Немного подскажу - надо как-то изменить buttonA

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Shturman250 пишет:

но код зависает

Привыкайте к правильной терминологии, это помогает. Ваше жаргонное "зависает" ничего не говорит. А вот если бы Вы сказали правильно "работает в бесконечном цикле" - это дало бы Вам подсказку куда копать. Подумайте.

Shturman250
Offline
Зарегистрирован: 17.11.2016

спасибо ваши пинок помог