OS_TMR *OSTmrCreate (INT32U dly, INT32U period, INT8U opt, OS_TMR_CALLBACK callback, void *callback_arg, INT8U *pname, INT8U *perr); 这个是定时器创建函数的原型,对于dly的注释不太理解-------单次模式时表示延时时间;周期模式时,表示第一次进入周期延时前的延时时间。 我创建一个处于 周期模式 的定时器,看来几遍源代码,还是没有发现在此模式下 dly 的延时怎么实现的,好像在周期模式下,启动定时器后,直接就是周期延时了。。。 求指教! 已找到原因!没有仔细看清代码! 创建定时器后,调用定时器启动函数OSTmrStart (), 在此启动函数中是通过调用OSTmr_Link(ptmr, OS_TMR_LINK_DLY); 将定时器连接到timer wheel上的, 所以不管创建的定时器是哪种模式的,定时器启动后均会执行dly的延时(假设dly不为零)! 下面是定时器的两种模式的时序 |