Библиотека реализующая Arduino-подобные функции realtime для STM32G4xx
- Подходит для микроконтроллеров STM32G4xx
- Использует HSI16 в качестве источника тактирования
- Основана на LPTIM1, использует прерывания с частотой 1 мс
- Разрешение: 1 мс & 1 мкс
- Точность зависит от точности HSI16, в пределах +-2%
- За счёт HSI16, не зависит от частоты тактирования CPU
Библиотека использует прерывания LPTIM1, не запрещайте глобальные прерывания слишком надолго!
-
Добавь stm32g4_uptime.h в свой проект
-
Вызови функцию инициализации:
UPTIME_Init();
-
Организация задержек:
delayMs(100); // Задержка в 100 мс delayUs(500); // Задержка в 500 мкс
-
Получение аптайма для программных таймеров:
uint32_t tmr0 = millis(); uint32_t tmr1 = micros();
-
При необходимости таймер можно оставновить:
UPTIME_Suspend(); // Остановить перед уходом в сон
-
Повторный запуск после остановки:
UPTIME_Resume(); // Запустить после выхода из сна
- Системное (инициализация и управление):
UPTIME_Init(); // Инициализация таймера и прерываний UPTIME_DeInit(); // Полный сброс и отключение таймера UPTIME_Reset(); // Аппаратный сброс таймера и счетчика millis()/micros() UPTIME_Suspend(); // Приостановка таймера (без сброса) UPTIME_Resume(); // Возобновление работы таймера
- Время:
millis(); // Аптайм в мс micros(); // Аптайм в мкс delayMs(x); // Задержка в х мс delayUs(x); // Задержка в х мкс