41#include "../project_settings.h"
44#ifndef OS_TIMER_NUMBER_OF_TIMERS
45 #error OS_TIMER_NUMBER_OF_TIMERS needs to be defined in the file project_settings.h
48#if OS_TIMER_NUMBER_OF_TIMERS > 0
61#if OS_TIMER_NUMBER_OF_TIMERS > 0
62OS_TIMER_DATA_t os_timer_data[OS_TIMER_NUMBER_OF_TIMERS];
69void OS_Timer_Init(
void)
71#if OS_TIMER_NUMBER_OF_TIMERS > 0
75 memset(os_timer_data, 0,
sizeof(os_timer_data));
76 for (i=0U; i < OS_TIMER_NUMBER_OF_TIMERS; i++)
78 os_timer_data[i].expired =
true;
96#if OS_USE_SCHEDULER_100us == 1
97void OS_Timer_StartCountdown_100us(uint8_t timer_index, uint16_t numOfTicks)
98#elif OS_USE_SCHEDULER_1ms == 1
99void OS_Timer_StartCountdown_1ms(uint8_t timer_index, uint16_t numOfTicks)
101#error OS_USE_SCHEDULER_100us or OS_USE_SCHEDULER_1ms needs to be definied as 1 to get the right timer functions
104 if (timer_index < OS_TIMER_NUMBER_OF_TIMERS)
106 os_timer_data[timer_index].countup =
false;
107 os_timer_data[timer_index].countdown =
true;
108 os_timer_data[timer_index].expired =
false;
109 os_timer_data[timer_index].timerval = numOfTicks;
115bool OS_Timer_IsCountdownExpired(uint8_t timer_index)
117 if (timer_index >= OS_TIMER_NUMBER_OF_TIMERS)
121 if (os_timer_data[timer_index].expired == 0U)
128void OS_Timer_Tick(
void)
131 for (i=0U; i < OS_TIMER_NUMBER_OF_TIMERS; i++)
133 if (os_timer_data[i].countdown == 1U)
135 if (os_timer_data[i].timerval != 0U)
137 os_timer_data[i].timerval -= 1U;
138 if (os_timer_data[i].timerval == 0U)
140 os_timer_data[i].expired =
true;