I live ExBB and CMS Limbo! » Разное » Arduino - простая работа с микроконтролером » Как не наступить на грабли при переполнении счетчиков.

Страниц (1): [1]
 

1. NordWest - 2 июня 2016 — 15:31 - перейти к сообщению
В Arduino для ориентации во времени часто используются счетчики millis() и micros(). Однако нужно учитывать, что в определённый момент счетчики достигают своего предельного значения 4294967295 после чего переходят в ноль (счетчик переполняется). Если не правильно сформировать условие, то можно получить очень неприятный эффект, когда программа изредка будет неверно работать или вообще подвисать.

Например такой код будет неверен
code:
if (millis() > timeold+INTERVAL) ;


правильно писать нужно только так
code:
if (millis()-timeold > INTERVAL) ;

Powered by ExBB v1.1.180311