发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名
如何周期性的执行uCOS下高速定时器的任务?
289 STM32F103 uCOS 定时器
分享
问题描述:STM32F103平台,uCOS-III系统。现在有一个任务需要周期性执行,每0.4ms执行一次,周期时间小于uCOS系统tick时间,所以不能采用uCOS系统的定时器来做。那该如何周期性的执行此任务呢??
0
2019-11-7 04:35:42   评论 分享淘帖 邀请回答
1个回答
用STM自己的定时器,具体做法是:
1.需要周期执行的任务代码封装成一个函数func(),
2.定义一个信号量semForTimer,
3.设置定时器周期为你需要的时间,即0.4ms,启动定时器,
4.在定时器中断服务函数中,利用post函数发送信号量,
5.在task中,利用pend()函数等待信号量semForTimer,然后执行func(),
有个需要注意的问题是,stm32定时器一旦启动后,会立即进入一次中断,发送一次信号量,定时器任务就会被执行,
没有起到定时作用,解决方法是,任务中先pend()一次信号量,然后在进入for(;;),在for循环中pend(),再执行func(),这也是没有办法的办法。
如果你想到了更好的办法,请联系我。
2019-11-7 06:54:07 评论

举报

只有小组成员才能发言,加入小组>>

187个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /5 下一条

快速回复 返回顶部 返回列表