И снова о millis()

Millis()>moment

Каких сбоев?
Вообще не должен, это просто константа.

Сбои есть?

Не ожидал )))

2 лайка

Я тоже прифигел ))

Как не поверил??? Посмотрите #17.

когда катушка в резонансе, она как оптрон, светится))
неужели не поняли, что это соц-инженерия эксперимент?

Я смотрю в строку 1 скетча ))

ЗЫ: конкретно в этом случае проблем быть не должно, но само по себе объявление такой константы как int бессмысленно

возникают скандалы, интриги, расследования ))

1 лайк

Почему? Целый тип (знаковость - побоку в этом примере), что не так?

А зачем?

ЗЫ: просто нужно привыкать к порядку сразу, иначе подобная расхлябанность где-нибудь вылезет непонятными глюками

Ты меня заинтриговал - а как надо?

Нет, я бы объявил как 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();
  }
}

Как думаешь, как быстро перестанет моргать светодиод? ))

1 лайк

Я его и пробовать не буду. Моей “квалификации” хватает, чтобы увидеть там фигню. Вот это
if (millis() < lastMillis + duration) и int-ы. Ведь это я заметил на “солидном” сайте. Что-то в #37 ответили. Сейчас посмотрю.

Скромно, очень скромно )) Но я не вам его предлагал