Millis()>moment
Каких сбоев?
Вообще не должен, это просто константа.
Сбои есть?
Не ожидал )))
Я тоже прифигел ))
Как не поверил??? Посмотрите #17.
когда катушка в резонансе, она как оптрон, светится))
неужели не поняли, что это соц-инженерия эксперимент?
Я смотрю в строку 1 скетча ))
ЗЫ: конкретно в этом случае проблем быть не должно, но само по себе объявление такой константы как int
бессмысленно
возникают скандалы, интриги, расследования ))
Почему? Целый тип (знаковость - побоку в этом примере), что не так?
А зачем?
ЗЫ: просто нужно привыкать к порядку сразу, иначе подобная расхлябанность где-нибудь вылезет непонятными глюками
Ты меня заинтриговал - а как надо?
Нет, я бы объявил как const uint16_t или вообще просто через #define.
Да вот как раз как uint16_t
. Т.е. таки знаковые и беззнаковые не смешивать. Дефайны тоже выход, но по умолчанию они определяются как раз как int
(если числовые), что тоже где-то может вылезти не туда ))
Вот и я об этом.
Развитие вопроса #1.
Можно ли скетч в #1 дополнить ЛЮБЫМИ командами и перемнными так, чтобы мигание диода зависало? То есть, чтобы к moment не всегда прибавлялось 500.
А условия такие: переменные moment, trigger не трогать; delay() не использовать; диод не тогать.
Попробуй - пойми сходу с какой периодичностью условие будет исполняться, если в нем две переменные изменяются.
Можно работой со строками, например, залезть в адресное пространство этих переменных и запортить их???
можно, даже по телефону.
в соседней теме есть пруфы.
Хочешь поизвращаться? ))
ЗЫ: а как тебе такой скетч с вроде бы “солидного” сайта?
int const pinLed = 13; // Глобальная переменная для хранения номера пина. Может быть заменена на константу
int lastMillis; // Глобальная переменная для хранения последнего времени функции millis()
int duration = 1000; // Глобальная переменная для хранения длительности паузы
int counter = 0; // Глобальная переменная - счетчик
void setup() {
Serial.begin(9600);
pinMode(pinLed, OUTPUT);
}
void loop() {
if (millis() < lastMillis + duration) {
digitalWrite(pinLed, LOW);
} else {
digitalWrite(pinLed, HIGH);
delay(1000);
counter++;
Serial.println(counter);
lastMillis = millis();
}
}
Как думаешь, как быстро перестанет моргать светодиод? ))
Я его и пробовать не буду. Моей “квалификации” хватает, чтобы увидеть там фигню. Вот это
if (millis() < lastMillis + duration) и int-ы. Ведь это я заметил на “солидном” сайте. Что-то в #37 ответили. Сейчас посмотрю.
Скромно, очень скромно )) Но я не вам его предлагал