Данный таймер предоставлен с помощью библиотеки osapi.h (#include "osapi.h").
При работе этого таймера нельзя использовать код в while(1).
при использовании while(1) и программного таймера код в таймере будет игнорироваться!
Временные интервалы выдерживаются не строго!
Функция деинициализация (обнуления) структуры таймера:
os_timer_disarm(os_timer_t *ptimer);
Функция инициализация структуры таймера:
os_timer_arm(os_timer_t *ptimer);
Функция указывает структуру и функцию обратного вызова:
os_timer_setfn(&os_timer01, (os_timer_func_t*)Timer01_Callback, NULL);
Функция настройки и запуска таймера (мс):
os_timer_arm(os_timer_t *ptimer, uint32_t time, bool repeat_flag);
*ptimer-указатель на структуру таймера
time -период в мс
repeat_flag-однократный (0) и циклический (1) запуск
Функция настройки и запуска таймера (мкс):
os_timer_arm_us(os_timer_t *ptimer, uint32_t microseconds, bool repeat_flag);
microseconds (минимальное значение 0x64 (100мкс), максимальное 0x0FFFFFFF)
Примечание: Данная функция неточная!!!
«Define USE_US_TIMER, and put system_timer_reinit at the beginning of
user_init, in the first sentence. The highest precision is 500 μs»
Пример:
static os_timer_t os_timer01; //Создаем переменную (структуру для инициализации)
Внутри «void ICACHE_FLASH_ATTR user_init()» пишем:
os_timer_disarm(&os_timer01); //деинициализировать (обнулить) структуру
os_timer_setfn(&os_timer01, (os_timer_func_t*)Timer01_Callback, NULL); //указываем структура и функцию обратного вызова
os_timer_arm(&os_timer01, 500, 1); //инициализировать структуру