用序列通道多次采集模式采集AD,一个周期采集20次,然后取一个平均值。

2019-07-21 18:54发布

这样的程序行不行。。

__interrupt void ADC12ISR (void)
{
uint index=0;
A0results[index] = ADC12MCTL0;
A1results[index] = ADC12MCTL1;
A2results[index] = ADC12MCTL2;
index = (index+1)%Num_Result;
if(index ==0)
{
for(i=0;1<=20,i++)
{
sum_0=A0results[i]+sum_0;
sum_1=A0results[i]+sum_1;
sum_2=A0results[i]+sum_2;
AO=sum_0/20;
A1=sum_2/20;
A2=sum_3/20;
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
yszong
1楼-- · 2019-07-22 10:48
改变ADC时钟源选择?默认是ADC12OSC????????
liliang9554
2楼-- · 2019-07-22 16:29
我觉得不可能时间不够啊,我贴出来的是一个中断,每次转化完一个周期就进入中断取平均值
wuhany
3楼-- · 2019-07-22 21:35
我觉得时间应该够的吧
jiahy
4楼-- · 2019-07-22 23:19

你的程序有问题,下面三句需要放到循环外面
AO=sum_0/20;
A1=sum_2/20;
A2=sum_3/20;
jiaxw
5楼-- · 2019-07-23 01:41
你没提供其他的程序,我也不知道你这一段程序和其他部分配合的怎么样,你调试看看吧
liliang9554
6楼-- · 2019-07-23 06:55
这三句为什么要放到主程序去????有什么区别吗?

一周热门 更多>