我想用 序列通道多次采集模式采集AD,一个周期采集20次,然后取一个平均值。
这样的程序行不行。。
__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;
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
怎么没有累加因子,Num_result 定为 20 ,INDEX从0到20.再到0的时候进行取平均值。
就是改变ADC时钟源选择?默认是ADC12OSC????????
另外 我觉得不可能时间不够啊,我贴出来的是一个中断,每次转化完一个周期就进入中断取平均值。我觉得时间应该够的吧
多谢
这三句为什么要放到主程序去????有什么区别吗?
我的主程序使用ADC数据就是 LR=(A0-A2)*25000/4095;A1是用在一个IF判断里的,是一种特殊情况
一周热门 更多>