Вопросы к Поиску с Алисой

Примеры ответов Поиска с Алисой
Главная / Наука и образование / Почему функция millis() не работает в обработчике прерываний?
Вопрос для Поиска с Алисой
4 февраля

Почему функция millis() не работает в обработчике прерываний?

Алиса
На основе источников, возможны неточности

Функция millis() не работает в обработчике прерываний, потому что при входе в него запрещаются все прерывания микроконтроллера. mypractic.ru Разрешаются они только при выходе из обработчика. mypractic.ru

За время работы обработчика функция millis() будет возвращать один и тот же результат, потому что прерывания не работают и соответственно не подсчитывается количество переполнений Timer0. forum.amperka.ru Но при следующем вызове прерывания, когда из него выйдут и начнёт работать основная программа, функция millis() вернёт новое значение. forum.amperka.ru

Чтобы решить проблему, можно использовать внешний счётчик времени, например DS1302 или DS1307. arduino.ru

Также для задержек в обработчике прерываний можно применять функцию micros(), но не millis(). arduino.stackexchange.com

Примеры полезных ответов Поиска с Алисой на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Поиску с Алисой.
Задать новый вопрос
Задайте вопрос...
…и сразу получите ответ в Поиске с Алисой
Войдите, чтобы поставить лайк
С Яндекс ID это займёт пару секунд
Войти