ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
29 марта
1046943 Топик полностью
AVF (25.10.2020 08:17, просмотров: 588) ответил Peter_M на Подскажите как сейчас правильно организовать в микроконтроллере программные таймеры?
есть системный таймер uint32_t sysTimer_ms который инкрементируется каждую 1мс. При необходимости можно любой добавить - 100мс, 1с, 1час. Потом для таймера завожу переменную uint32_t timer_n. Ну и дальше просто: 
//запуск отсчета:
timer_n = sysTimer_ms;

//проверка условия:
if (sysTimer_ms - timer_n > needInterval)
{
    // если таймер периодический, обновляем отсчет
    timer_n = sysTimer_ms;

    // делаем что надо по таймеру.

}

в общем то достаточно примитивно и надежно, основное условие - все переменные должны быть unsigned и одного размера, для некоторых компиляторов, если needInterval число, его надо явно обозначать как беззнаковое типа "1000U".