Прошу прощения, не ту кнопку нажал. По нажатию кнопки через 4 сек выключить светодиод.
//АРДУИНО МЕГА 2560
unsigned long button; //Задержка времени для считывания кнопки
void setup()
{
pinMode(12, OUTPUT); //Выход на светодиод
digitalWrite(12, HIGH);
pinMode(8, INPUT_PULLUP); //Здесь висит кнопка
Serial.begin (115200);//Инициализация порта вывода
}
void loop()
{
if (millis() - button > 100) //Каждые 100 мсек запрос нажата ли кнопка?
{
boolean q=digitalRead(8);
Serial.println (q);
if (q=0)
{
delay (4000);
digitalWrite (12,LOW);
}
button = millis(); //________Обнуляем переменную времени
}
Никак не пойму, где напортачено? По нажатию кнопки монитор порта исправно говорит, что q приравнивается к нулю, но светодиод не гаснет. Пробовал приравнивать к False и LOW - результат тот же.
Вот что меня всегда восхищало - так это то, что народ легко скачет с одного языка на другой (С - С+ - Dbase - Clipper - Pascal - Delphi - Basic... и т.д.) и еще при этом бодро обсуждает их тонкости и скрытые особенности. Всю жизнь преклоняюсь перед профи. Тут с VB6 на некую разновидность С с таким скрипом....
Прошу прощения, не ту кнопку нажал. По нажатию кнопки через 4 сек выключить светодиод.
//АРДУИНО МЕГА 2560 unsigned long button; //Задержка времени для считывания кнопки void setup() { pinMode(12, OUTPUT); //Выход на светодиод digitalWrite(12, HIGH); pinMode(8, INPUT_PULLUP); //Здесь висит кнопка Serial.begin (115200);//Инициализация порта вывода } void loop() { if (millis() - button > 100) //Каждые 100 мсек запрос нажата ли кнопка? { boolean q=digitalRead(8); Serial.println (q); if (q=0) { delay (4000); digitalWrite (12,LOW); } button = millis(); //________Обнуляем переменную времени }Никак не пойму, где напортачено? По нажатию кнопки монитор порта исправно говорит, что q приравнивается к нулю, но светодиод не гаснет. Пробовал приравнивать к False и LOW - результат тот же.
Строка 18 не содержит условия сравнения.
Строка 18 не содержит условия сравнения.
Спасибо огромное! Глаз замылился. Конечно, надо "=="!
Строка 18 не содержит условия сравнения.
Спасибо огромное! Глаз замылился. Конечно, надо "=="!
Строка 18 не содержит условия сравнения.
Спасибо огромное! Глаз замылился. Конечно, надо "=="!
Ну это ты на JS не писал! Там еще и === есть, шоб скучно не было.
Всё думаю на досуге язык сочинить где еще и ==== будет, может Женя что подскажет? ;))))
Наверно не забываешь а забИваешь на это, потому как компилятор кричит, а мы забИли на это.
/opt/arduino-1.8.9/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -I/opt/arduino-1.8.9/hardware/arduino/avr/cores/arduino -I/opt/arduino-1.8.9/hardware/arduino/avr/variants/mega /tmp/arduino_build_655362/sketch/sketch_may09a.ino.cpp -o /tmp/arduino_build_655362/sketch/sketch_may09a.ino.cpp.o /home/alex/Arduino/sketch_may09a/sketch_may09a.ino: In function 'void loop()': /home/alex/Arduino/sketch_may09a/sketch_may09a.ino:18:14: warning: suggest parentheses around assignment used as truth value [-Wparentheses] if (q=0) ^Спасибо огромное! Глаз замылился. Конечно, надо "=="!
0 = q, а если так?
Наверно не забываешь а забИваешь на это, потому как компилятор кричит, а мы забИли на это.
/opt/arduino-1.8.9/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10809 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -I/opt/arduino-1.8.9/hardware/arduino/avr/cores/arduino -I/opt/arduino-1.8.9/hardware/arduino/avr/variants/mega /tmp/arduino_build_655362/sketch/sketch_may09a.ino.cpp -o /tmp/arduino_build_655362/sketch/sketch_may09a.ino.cpp.o /home/alex/Arduino/sketch_may09a/sketch_may09a.ino: In function 'void loop()': /home/alex/Arduino/sketch_may09a/sketch_may09a.ino:18:14: warning: suggest parentheses around assignment used as truth value [-Wparentheses] if (q=0) ^Крики компилятора зависят от настроек, не у всех настройки иде такие как у вас. Поэтому ваши оценочные суждения преждевременны :)
Об том и речь, забьем на варнинги, просто их отключим, а когда просрем что то важное, начинаем ругать компилятор.
Об том и речь, забьем на варнинги, просто их отключим, а когда просрем что то важное, начинаем ругать компилятор.
Тады ой. Но давайте не будем забывать, что мы в песочнице :)
Ну это ты на JS не писал! Там еще и === есть, шоб скучно не было.
Всё думаю на досуге язык сочинить где еще и ==== будет, может Женя что подскажет? ;))))
Таблица 4-2. Операторы Отношения
= равно
== сравнивает символьные типы на точное
соответствие или сравнивает первые 12 значащих
цифр числовых типов
для остальных типов равнозначен "="
SLKH, я чуток расширю ответ графа
Ну это ты на JS не писал! Там еще и === есть
и означает "ещё равнее" :)))
Таблица 4-2. Операторы Отношения
= равно
== сравнивает символьные типы на точное
соответствие или сравнивает первые 12 значащих
цифр числовых типов
для остальных типов равнозначен "="
Это откуда такое? Про что это?
Таблица 4-2. Операторы Отношения
= равно
== сравнивает символьные типы на точное
соответствие или сравнивает первые 12 значащих
цифр числовых типов
для остальных типов равнозначен "="
Это откуда такое? Про что это?
На клиппере я в последний раз работал в 1993. Тогда не понравилось. А сейчас - не изучал :(
Вот что меня всегда восхищало - так это то, что народ легко скачет с одного языка на другой (С - С+ - Dbase - Clipper - Pascal - Delphi - Basic... и т.д.) и еще при этом бодро обсуждает их тонкости и скрытые особенности. Всю жизнь преклоняюсь перед профи. Тут с VB6 на некую разновидность С с таким скрипом....
PS: Други, ни доли иронии!