如何避免多中断修改变量

2019-07-20 06:48发布

求助一下各位大佬,有的时候我们在使用同一变量进行操作的时候,又可能会因为被其他操作相关变量的中断打断而导致数值计算不准确

例如:我在中断 串口中断中读取某一感器的数据并赋给数组A[];
然后又在定时器中断中利用这一个数组进行计算,那么,当很巧合的时候,或者数据量很大的时候,就又可能出现tim中断中正读取到A[1];就被串口中断打断从而改变了数组A[]的数据,跳回到tim中断再进行计算就不准确了,
这种情况无论优先级如何都有数据被改动的情况吧?
我想问的是如何去避免这种情况,有什么方法防止我在计算的时候数据不被改变???


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
正点原子
1楼-- · 2019-07-20 10:52
 精彩回答 2  元偷偷看……
DWalker
2楼-- · 2019-07-20 15:44
自顶,大神快来帮帮我
DWalker
3楼-- · 2019-07-20 17:18
 精彩回答 2  元偷偷看……
sevekwl
4楼-- · 2019-07-20 21:59
 精彩回答 2  元偷偷看……
DWalker
5楼-- · 2019-07-20 22:25
sevekwl 发表于 2018-8-6 20:19
使用双缓冲或者多缓冲

好像有点道理,不过数据量大的话很耗资源啊,
sevekwl
6楼-- · 2019-07-21 00:16
有多大的数据量?做好你的数据结构定义。

一周热门 更多>