29#ifndef OS_TIMER_NUMBER_OF_TIMERS
30 #pragma message "OS_TIMER_NUMBER_OF_TIMERS needs to be defined in the file project_settings.h"
33#if OS_TIMER_NUMBER_OF_TIMERS > 0
46#if OS_TIMER_NUMBER_OF_TIMERS > 0
47OS_TIMER_DATA_t os_timer_data[OS_TIMER_NUMBER_OF_TIMERS];
54void OS_Timer_Init(
void)
56#if OS_TIMER_NUMBER_OF_TIMERS > 0
60 memset(os_timer_data, 0,
sizeof(os_timer_data));
61 for (i=0U; i < OS_TIMER_NUMBER_OF_TIMERS; i++)
63 os_timer_data[i].expired =
true;
81#if OS_USE_SCHEDULER_100us == 1
82void OS_Timer_StartCountdown_100us(uint8_t timer_index, uint16_t numOfTicks)
83#elif OS_USE_SCHEDULER_1ms == 1
84void OS_Timer_StartCountdown_1ms(uint8_t timer_index, uint16_t numOfTicks)
86#error OS_USE_SCHEDULER_100us or OS_USE_SCHEDULER_1ms needs to be definied as 1 to get the right timer functions
89 if (timer_index < OS_TIMER_NUMBER_OF_TIMERS)
91 os_timer_data[timer_index].countup =
false;
92 os_timer_data[timer_index].countdown =
true;
93 os_timer_data[timer_index].expired =
false;
94 os_timer_data[timer_index].timerval = numOfTicks;
100bool OS_Timer_IsCountdownExpired(uint8_t timer_index)
102 if (timer_index >= OS_TIMER_NUMBER_OF_TIMERS)
106 if (os_timer_data[timer_index].expired == 0U)
113void OS_Timer_Tick(
void)
116 for (i=0U; i < OS_TIMER_NUMBER_OF_TIMERS; i++)
118 if (os_timer_data[i].countdown == 1U)
120 if (os_timer_data[i].timerval != 0U)
122 os_timer_data[i].timerval -= 1U;
123 if (os_timer_data[i].timerval == 0U)
125 os_timer_data[i].expired =
true;