完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位专家,请教一下, 我的依据RT-thread nano的任务,以前定时器都很正常,随着代码不停的增加,发现有个定时器启动后,进不了回调函数了,也不是始终不行,运行一段时间后不行了。 由于找不到原因,定时器优先级,堆栈改大,SOFT TIMER改成了HARD TIMER,这个定时器正常了,悲剧的是发现又有一个周期定时器,进不了回调函数了,重启程序就会好一会儿, 请问,这种可能是什么原因导致? 我用的都是静态函数,RAM足够大,RT-Thread对于定时器的数量有没有限制,感觉以前定时器少的时候没毛病,定时器多了产生的问题 |
|
相关推荐
5个回答
|
|
在定时器回调函数中不要执行耗时操作,特别不能延时,定时器回调函数默认优先级是4很高了。软件定时器也不要放耗时操作。
有耗时操作需求的,可以自己创建一个线程,基于邮箱,消息队列或,事件标志组来实现。 或者使用rtt官方的workqueue |
|
|
|
定时器回调函数中,能不能使用互斥量?比如等待串口发送数据;我的代码中,确实有个定时器回调函数中用了延时函数,我改改看
|
|
|
|
可以,但强烈不推荐
硬件定时器是在中断中执行,软件定时器优先级是4,你要想想你的定时器的回调函数是否需要这么高的优先级。 当然你也可以把软件定时器优先级改的低点 你要把很多操作放到定时器来做,就失去rtos的意义了 |
|
|
|
谢谢您,就是函数延时的问题,照您的指导,超时函数就发送两个标志,在thread中延时、循环,目前一切正常了,感谢!!!
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
830 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2916 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1391 浏览 0 评论
2006 浏览 0 评论
1553 浏览 0 评论
75039 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 23:41 , Processed in 0.691614 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号