ВходНаше всё Теги codebook PARTS Поиск Опросы Закон Пятница
27 ноября
/1046466
Топик полностью
SciFi (23.10.2020 13:15, просмотров: 288) в ответ на Подскажите как сейчас правильно организовать в микроконтроллере программные таймеры? - автор: Peter_M
Обычно не нужно строго выдерживать период, достаточно "в следующий раз через N мс или чуть позже". В этом случае удобно вот так: 
unsigned int uptime_ms(void)
{
  return global_ms_counter;
}

int main()
{
  // main loop
  for (;;)
  {
    static unsigned int prev_a;
    if (uptime_ms() - prev_a > 25)
    {
      prev_a = uptime_ms();
      // do something
    }
    static unsigned int prev_b;
    if (uptime_ms() - prev_b > 100)
    {
      prev_b = uptime_ms();
      // do something
    }
    // and so on ...
  }
}
Ответить
Ответы