не работает условный оператор if
- Войдите на сайт для отправки комментариев
Сб, 06/01/2018 - 23:27
Что то замарочился совсем и не могу понять в чём же дело. Не выполняется условие после оператора "if"...
Подскажите что я не так делаю?!
void loop()
{
butt = digitalRead (10); // считываем текущее состояние кнопки
if (butt ==0 && butt_flag == 0) // Если кнопка нажата И если кнопка не была нажата ....
{
butt_flag = 1; //.... то перезаписываем последнее состояние кнопки
led = !led; // вкл/выкл подсветки (инвертируем состояние при нажатие на кнопку)
digitalWrite (2, led); // на этой ноге питание подсветки экрана
}
if (butt == 1 && butt_flag == 1) // Если кнопка отпущена И она была только что нажата ....
{
butt_flag = 0; } // ...... то опять перезаписываем последнее состояние кнопки
delay (5);
if (millis() - last_time > 500) {
myGLCD.clrScr();
myGLCD.setFont(PFont);
P=bmp.readAltitude();
P=(int)P; // пересчитываем в метры
P = P - abs_P;
if (P > 9) { // !!!!!!!!!!!!!!!!!!!!!!!!!!!! Здесь вот!!!!!
P / 10;
}
p_string = String(P);
myGLCD.print(p_string, RIGHT, 0); // Отображение значения высоты, с точностью до метра
last_time = millis();
}
}
Подскажите что я не так делаю?!
Во-первых, код неправильно вставляете. Да и тот у вас не код, а сплошные огрызки какие-то. Например, "P / 10" - это что за огрызок?
P/10 - это значит, что если P больше 9, значит её нужно разделить на 10....
Там, где не работает, всегда используйте вывод в сериал монитор для диагностики, устанавливая в то или иное место Serial.print узнаете , "заходит" ли сюда программа или нет, и почему
P/10 - это значит, что если P больше 9, значит её нужно разделить на 10....
Это значит, что у вас написана дичь. P / 10 - куда результат прикажете? У вас он на Марс улетает, как минимум.
например перед проверкой условия распечатайте свою переменную P и после выполнения деления
Спасибо, DIYMan!!!! Всё верно!!!!
Всем спасибо!!!!!