132 lines
2.8 KiB
C
132 lines
2.8 KiB
C
/*!
|
|
* \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 */
|