Проблема с работоспособностью скетка

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

DAK пишет:

millis()-timeON будет отрицательным почти 50 дней.

Гений, никада uint32_t отрицательным не будет. 

b707
Offline
Зарегистрирован: 26.05.2017

DAK пишет:

Представим, что в исходном коде таймер 71-то строки зафиксируется за 1 секунду до переполнения условия

тогда таймер отключения  (74 строка) не сработает никогда, просто не должно сработать по определению.

millis()-timeON будет отрицательным почти 50 дней.

он бы висел вечно, пока я туда не дописал условие (если я правильно читаю мануалы, то я не зря добавил условие)

там все величины - беззнаковые, так что отрицательными они стать не могут. Соответвенно все, что ты написал - неверно в принципе. Если первый таймер зафиксировался за секунду до переполнения, а второй - спустя секунду после. то при их вычитании получится 2 секунды - ровно столько, сколько должно быть.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

DAK пишет:
millis()-timeON будет отрицательным почти 50 дней.
А другие 50 дней - комплексным. И нипаймёшь чё хуже. Бида :(

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Действия по борьбе с зависаниями от помех:

  • -Ставить все неиспользуемые пины на output
  • - Керамические и электролиты по питанию, плюс ferrite bead
  • - Искрогасящие RC-цепочки параллельно контактам реле 
  • - Диоды параллельно индуктивной нагрузке
  • - Керамика параллельно всем используемым входам и выходам
  • - Все входы/выходы подключать к внешним цепям через последовательное сопротивление 10-200 ом

Если кто вспомнит чего еще - добавте, пожалуйста.