| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*
- * 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){}
- }
|