请教,如何避免中断采样数据冲掉主循环数据?

2019-07-20 14:13发布

这个问题是这样的,32的定时器2K中断采样,获得采样的累加和及采样次数,采样的数据在主循环中进行均值处理,现在为了防止中断采样将数据更新后,主循环的均值计算会出错,想着把中断采样的数据处理一下,避免在主循环中计算均值时出错。

这个现象用到的地方还不少,基本上需要将接收数据进行多处处理的都需要,我知道这里应该做一个锁存,但是这个锁存怎么做,思路不是很清楚。采集数据变量和采集次数变量都是全局变量,锁存该怎么锁存?

请教一下大家,这个该怎么处理?麻烦大家了!谢谢!

原子哥,求指点!@正点原子
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
lvehe
1楼-- · 2019-07-20 18:11
搞个双缓冲不行吗?何必锁存?
hswkcg
2楼-- · 2019-07-20 23:06
 精彩回答 2  元偷偷看……
lvehe
3楼-- · 2019-07-21 04:19
1秒2000次中断,假设数据类型为int,那么可以设置2个数组,int sample1[2000], sample2[2000]。
首先数据保存在sample1中,在中断中计数,达到2000个采样后数据开始保存到sample2中。
你有1秒的时间处理sample1中的数据。再次计到2000个采样后,采样数据的位置要切换到sample1。
同样,你有1秒的时间来处理sample2的数据。
这样周而复始,只要程序设计合理,通常不会出现你所说的冲掉数据的情况。

一周热门 更多>