#ifndef _PT_TIMER_H_ #define _PT_TIMER_H_ #include "pt.h" struct timer { unsigned long start; //记录启动时的tick值 unsigned long interval; //要定时的tick数 }; void timer_set(struct timer *t, unsigned long interval); unsigned char timer_expired(struct timer *t); //这两个函数运用的时候禁止关中断 void delay_ms(int32_t nMs); void delay_us(int32_t nUs); #define delay_ms_noblock(pt1,t_ms)\ do\ {\ static struct timer t2;\ timer_set(&t2,t_ms);\ PT_WAIT_UNTIL(pt1,timer_expired(&t2));\ }\ while(0); #endif