| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- /*
- * tr_timer.c
- *
- * Created on: 2025年7月25日
- * Author: 龙三郎
- * 定时不大准,需要精准定时,试用芯片提供的定时器
- */
- #include "tr_timer.h"
- #include "nim_config.h"
- // 定时器
- unsigned volatile int TocuhTime = TOUCH_TIME; //触控时间
- unsigned volatile char TocuhTrigger = 0; //触控触发
- unsigned int WatchTime = WATCH_TIME; //触控时间
- // 定时器
- static unsigned int BaseTime = 0;
- void BaseTimeIncremental(void)
- {
- BaseTime++;
- if(TocuhTrigger && TocuhTime--)
- {
- if(TocuhTime == 0)
- {
- TocuhTrigger = 0;
- }
- }
- if(!(WatchTime--))
- {
- WatchTime = WATCH_TIME;
- ConsolePuts("\n main fun not go out \n", -1);
- }
- }
- 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){}
- }
- /**
- * 初始化看门时间
- */
- void InitWatchTime()
- {
- WatchTime = WATCH_TIME;
- }
|