/**
26.09.2020
ad0x0 time manager... 
херня вот какая.
Adtimman – это менеджер вызовов по времени. Задача стояла примерно так, 
в очереди команд стояла команда на паузу 100 мс. Первая реализация была 
hal_delay(100)…в прерывании… -тупость. Что-то надо было такое, что 
вызовет функцию через 100мс с нужного момента. Как это работает. В так 
называемый планировщик кладется команда ‘выполнить ф-ю через 100мс’ и следом 
происходит выход из ф-ии обработки текущего эл-та, возращая управление основному 
потоку вычислений. Передаваемый указатель – это ф-я, которая выкинет текущий эл-т из 
очереди и запустит в обработку следующий – т.е. то, что произойдет через 100мс. 
Основной поток вычислений при этом не прерывается. Менеджер-планировщик каким то 
раком через 100мс вызовет нашу ф-ю. Так вот такой менеджер 
реализован и называется ad0x0_timman.
*/

#include "main.h"

#ifndef AD0X0_TIMMAN_H
#define AD0X0_TIMMAN_H

#define AD0X0_TIMMAN_QCOUNT 10

typedef struct{
	int16_t	time_init_ms;
	int16_t	time_cur_ms;
	uint8_t (*p_func)(void);
}ad0x0_timman_s;

void	ad0x0_timman_init(void);//
void	ad0x0_timman_add(int16_t _ms,uint8_t (*p_func)(void));//запланировать вызов ф-ии через скока-то мс
void	ad0x0_timman_remove(uint8_t (*p_func)(void));//убрать из планировщика (для перезагрузки и2ц делал)
void	ad0x0_timman_tickms(void);//вызывать раз в 1мс

#endif 

