# SWTimer **Repository Path**: xh_li/swtimer ## Basic Information - **Project Name**: SWTimer - **Description**: 使用硬件定时器作为时基,分出多个定时器,参考MultiTimer修改。 - **Primary Language**: C - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2021-07-01 - **Last Updated**: 2023-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SWTimer #### 介绍 使用硬件定时器作为时基,分出多个定时器。 #### 软件架构 软件架构说明 使用双向链表,添加定时器时,在链表中按照超时时间排序添加定时器节点。 #### 使用说明 ``` SWTimer_t SWTimerHandle = {0}; //系统时基 void Timer0_IrqProcess(void) { SWTimer_Tick(); } //超时回调函数 void SW_TimerCB(void) { SWTimer_Start(&SWTimerHandle,80,SW_TimerCB); } //系统初始化 void OS_Init(void) { //软件定时器初始化 SWTimer_Init(); //硬件定时器初始化 Timer0_Init(Timer0_IrqProcess); //硬件定时器开始定时 Timer0_Start(); //软件定时器开始 SWTimer_Start(&SWTimerHandle,0,SW_TimerCB); } void main(void) { //系统初始化 OS_Init(); while(1) { //超时机制处理函数 SWTimer_TimeOutProcess(); } } ```