Здрасьте. Пытаюсь зациклить опрос клавиатуры с помощью while.В условии ставлю, что нажатая клавиша должна быть 1 или 2, но программа пролетает этот цикл насквозь... Что не так, подскажите, пожалуйста. Вот отрывок: Код (Text): void loop() { myGLCD.print("B""\x8B""\xB1""ep""\xB8""\x82""e", CENTER, 3); //Печатаем "Выберите" myGLCD.print("\xBF""po""\xB3""pa""\xBC""\xBC""\x83", CENTER, 10); //Печатаем "программу" myGLCD.update(); //заливаем из буфера на экран //опрос клавиатуры if ((Keypad.Key_State() == 3)) // не нажата = 0, нажата = 1, отжата = 2, зажата = 3 { while(keypress != '1' || keypress !='2') { char keypress = Keypad.Getkey(); // помещаем результат нажатой клавиши в переменную 'keypress' типа char while ((Keypad.Key_State())){} // оставаться здесь, пока клавиша нажата - клава срабатывает на отжатие myGLCD.print(String (keypress), CENTER, 30); //преобразуем char в String для вывода на экран myGLCD.update(); } } myGLCD.clrScr(); //очищаем экран myGLCD.update();
сделал. но малость через **** for)) а вообще ошибка тут была в том, что while надо было ставить двумя строчками выше - сразу перед if