| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #include "Timer_Module.h"
- #include "CONFIG.h"
- // ¶¨Ê±Æ÷
- static uint32_t timer_ms = 0;
- void my_timer()
- {
- timer_ms++;
- }
- uint32_t get_time(void)
- {
- return timer_ms;
- }
- uint32_t get_time_diff(uint32_t time)
- {
- if(timer_ms >= time)
- {
- return timer_ms - time;
- }
- else
- {
- return 0xFFFFFFFF - time + timer_ms;
- }
- }
- uint32_t time_get_delay(struct TIMER_Struct * timer)
- {
- if(timer->flag == 0)
- {
- timer->flag = 1;
- timer->time = get_time();
- return 0;
- }
- else if(timer->flag == 1)
- {
- return get_time_diff(timer->time);
- }
- else
- {
- return 0;
- }
- }
- void time_clear(struct TIMER_Struct * timer)
- {
- timer->flag = 0;
- timer->time = 0;
- }
- // ÑÓʱº¯Êý
- void my_delay_ms(uint32_t ms)
- {
- struct TIMER_Struct timer = {
- .time = 0,
- .flag = 0,
- };
- while(time_get_delay(&timer) < ms){}
- }
|