Optron
27.Октябрь.2024 18:32:22
1
Доброго здоровья!
Не хочу забивать рубрику “Говнокод по пятницам”, поэтому обращаюсь сюда. Да и сегодня далеко не пятница.
Есть вот такой скетч:
const int period = 500;
bool trigger;
unsigned long moment;
void setup()
{
pinMode(13, OUTPUT);
digitalWrite(13, 0);
}
void loop()
{
if (millis() - moment >= period)
{
moment = moment + period;
trigger = !trigger;
digitalWrite(13, trigger);
}
}
Диод должен вспыхивать ПРИМЕРНО раз в секунду. Как маятник.
Всегда ли так будет, если контроллер исправен и работает от бесперебойника?
Это бомба замедленного действия.
Optron
27.Октябрь.2024 18:37:09
4
BOOM:
Всегд
Ф что вы скажете о строке 1?
v258
27.Октябрь.2024 18:37:20
5
Этот код вообще не скомпилируется, переменная trigger
не объявлена
Optron
27.Октябрь.2024 18:38:56
8
Простите. Поправил. Неудачно скопировал.
v258
27.Октябрь.2024 18:40:50
12
Optron:
Из - за строки 1.
Объясните, чем вас так прельшает именно int
?
BOOM
27.Октябрь.2024 18:41:50
13
Да какая разница? Int, uint или еще что. В этом коде это не принципиально.
v258
27.Октябрь.2024 18:43:16
14
BOOM:
Да какая разница?
Просто он мне не поверил, что не стоит смешивать знаковые переменные с беззнаковыми ))
А зачем при каждой проверке помимо сравнения производить вычисления ???
Optron
27.Октябрь.2024 18:45:53
17
Он меня не прельщает. Вчера меня один человек убедил (он знает - о ком я говорю), что при работе с millis() int там и на фиг не тарахтел. И я с ним СОГЛАСЕН. Я учел его рекомендации!
Меня же интересует вот что. Может ли этот int быть причиной сбоев???
ua6em
27.Октябрь.2024 18:46:23
19
а напрасно, там должно быть uint32_t
v258
27.Октябрь.2024 18:46:29
20
Komandir:
Строка 11
А как еще выяснить, что время подошло?
1 лайк