freertos任务与中断同步问题

[复制链接]
953|1
手机看帖
扫描二维码
随时随地手机跟帖
taizifei|  楼主 | 2020-8-31 10:28 | 显示全部楼层 |阅读模式
问题描述:有两个任务调用读取AD7606的接口,还有一个任务里开始定时器(30hz,一个周期33.3ms)中断采集AD,也是调用同一个接口,导致读取到的AD值偏大很多?

导致AD值偏大的原因:可能是产生定时器中断读取AD值,使用中断前的保存的栈(某个任务也在读取AD值)发生了变化?

我的解决方法是:在读取AD值得接口前后加临界代码保护,taskENTER_CRITICAL();和taskEXIT_CRITICAL() 。
试过freertos信号量与互斥锁,好像还是存在问题,请问各位大佬有什么好的解决方法吗?

使用特权

评论回复

相关帖子

ayb_ice| | 2020-8-31 10:54 | 显示全部楼层
多任务调用ADC,首先要满足互斥,才可能读到正确结果

使用特权

评论回复
发新帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝