sunchao151 发表于 2012-3-6 16:57:34

RTT 关于定时器的用法?

问题一:rt_timer_init和rt_timer_create完之后,是否都需要rt_timer_start?(解决:必须要)

问题二:周期性定时器和单次定时器的区别,周期性定时器是不是每timer_out都会触发time_out函数。单次定时器是否只是触发一只就退出timer_list?
      (解决:对)


问题三:和定时器无关,线程里面可否嵌套一个线程。

问题四:实际应用的疑惑,比如应用程序需要在20秒内无任何操作退出,但只要有按键按下,就重新开始计时20秒。请问此功能如何组织实现?

问题五:rt_timer_stop之后,停止之后,从timer_list中移除,是否可用rt_timer_start重新启动。。


请各位大侠讲解下问题三、问题四、问题五

谢谢

tiancaigao7 发表于 2012-3-6 18:11:54

问题一,都需要。
问题二,单次定时器触发一个timeout时间之后定时器就不在运行了。
问题三,你对于嵌套的定义是什么?是要打断当前线程?在线程中可以开启一个新的线程,但是要将当前线程挂起需要调用相应的API函数。
问题四,很简单,定义一个定时器,在回调函数中将当前的线程销毁。在按键回调事件中停止当前定时器,然后再启动这个定时器。

sunchao151 发表于 2012-3-7 12:29:17

回复【1楼】tiancaigao7天才杨威利
问题四,很简单,定义一个定时器,在回调函数中将当前的线程销毁。在按键回调事件中停止当前定时器,然后再启动这个定时器。
-----------------------------------------------------------------------

在按键回调事件中停止当前定时器,然后再启动这个定时器。

如何再次启动定时器。?

先stop ,然后再start吗?定时长度还是设置的time_out 吗?

问题五:rt_timer_stop之后,停止之后,从timer_list中移除,是否可用rt_timer_start重新启动。。

tiancaigao7 发表于 2012-3-8 07:17:40

回复【2楼】sunchao151
回复【1楼】tiancaigao7天才杨威利
问题四,很简单,定义一个定时器,在回调函数中将当前的线程销毁。在按键回调事件中停止当前定时器,然后再启动这个定时器。
-----------------------------------------------------------------------
在按键回调事件中停止当前定时器,然后再启动这个定时器。
如何再次启动定时器。?
先stop ,然后再start吗?定时长度还是设置的time_out 吗?
问题五:rt_timer_stop之后,停止之后,从timer_list中移除,是否可用rt_timer_start重新启动。。

-----------------------------------------------------------------------

我的意思是,停止,然后重新初始化一个定时器,不过回调函数使用之前的回调函数。然后再启动。或者定义一个周期的定时器,其回调事件中判断是结束线程,但是这个是否结束依靠一个标志位来判断。在button的回调事件中将修改对应的标志位。当然还可以定义一个信号量,然后在button事件中释放信号量,而在定时器的回调函数中申请信号量,如果申请不到,意味着没有按键那么就结束,否则就跳过。等等,能实现这种功能的方法非常非常多。

32446975 发表于 2013-7-8 00:01:00

收藏!好帖!
页: [1]
查看完整版本: RTT 关于定时器的用法?