/* * tr_timer.c * * Created on: 2025年7月25日 * Author: 龙三郎 * 定时不大准,需要精准定时,试用芯片提供的定时器 */ #include "tr_timer.h" // 定时器 static unsigned int BaseTime = 0; void BaseTimeIncremental(void) { BaseTime++; } unsigned int GetPassedTime(struct TimerStruct * timer) { if(timer->flag == 0) { timer->flag = 1; timer->time = BaseTime; return 0; } else if(timer->flag != 1) { return 0; } else if(BaseTime >= timer->time) { return BaseTime - timer->time; } else { return 0xFFFFFFFF - timer->time + BaseTime; } } void ClearTimer(struct TimerStruct * timer) { timer->flag = 0; timer->time = 0; } // 延时函数 void DelayMs(unsigned int ms) { struct TimerStruct timer = { .time = 0, .flag = 0, }; while(GetPassedTime(&timer) < ms){} }