[uCOS/uCGUI] ucos ii 的定时器创建函数疑问

hjj742975525   2012-10-8 13:20 楼主
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不为零)!
下面是定时器的两种模式的时序



[ 本帖最后由 hjj742975525 于 2012-10-8 17:16 编辑 ]
  • 360软件小助手截图20121008170150.jpg

回复评论 (1)

不懂……
点赞  2012-10-11 14:51
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复