/*! * \file OSAL_Timers.h * * \brief The header of OSAL_Timers.c * * \copyright Revised BSD License, see section \ref LICENSE. * * \code * * _ __ _ ________ _ * | |/ /(_)___ / ____/ /_ (_)___ * | // / __ \/ / / __ \/ / __ \ * / |/ / / / / /___/ / / / / /_/ / * /_/|_/_/_/ /_/\____/_/ /_/_/ .___/ * /_/ * (C) 2022-2025 XinChip * * \endcode * * \author ( XinChip ) Alex-J * * \author ( XinChip ) */ #ifndef OSAL_TIMERS_H #define OSAL_TIMERS_H #ifdef __cplusplus extern "C" { #endif /********************************************************************* * INCLUDES */ /********************************************************************* * MACROS */ /********************************************************************* * CONSTANTS * the unit is chosen such that the 320us tick equivalent can fit in * 32 bits. */ #define OSAL_TIMERS_MAX_TIMEOUT 0x28f5c28e /* unit is ms*/ /********************************************************************* * TYPEDEFS */ /********************************************************************* * GLOBAL VARIABLES */ /********************************************************************* * FUNCTIONS */ /* * Initialization for the OSAL Timer System. */ extern void osalTimerInit( void ); /* * Set a Timer */ extern uint8 osal_start_timerEx( uint8 task_id, uint16 event_id, uint32 timeout_value ); /* * Set a timer that reloads itself. */ extern uint8 osal_start_reload_timer( uint8 taskID, uint16 event_id, uint32 timeout_value ); /* * Stop a Timer */ extern uint8 osal_stop_timerEx( uint8 task_id, uint16 event_id ); /* * Get the tick count of a Timer. */ extern uint32 osal_get_timeoutEx( uint8 task_id, uint16 event_id ); /* * Simulated Timer Interrupt Service Routine */ extern void osal_timer_ISR( void ); /* * Adjust timer tables */ extern void osal_adjust_timers( void ); /* * Update timer tables */ extern void osalTimerUpdate( uint32 updateTime ); /* * Count active timers */ extern uint8 osal_timer_num_active( void ); /* * Set the hardware timer interrupts for sleep mode. * These functions should only be called in OSAL_PwrMgr.c */ extern void osal_sleep_timers( void ); extern void osal_unsleep_timers( void ); /* * Read the system clock - returns milliseconds */ extern uint32 osal_GetSystemClock( void ); /* * Get the next OSAL timer expiration. * This function should only be called in OSAL_PwrMgr.c */ extern uint32 osal_next_timeout( void ); /********************************************************************* *********************************************************************/ #ifdef __cplusplus } #endif #endif /* OSAL_TIMERS_H */