我刚好写完 完全可以显示正确的数值
复制给你:
//初始化ADC12
P6SEL |= 0x01; // 使能ADC通道
ADC12CTL0 = ADC12ON+SHT0_8+MSC; // 打开ADC,设置采样时间
// ADC12CTL0|= REFON+REF2_5V;
// ADC12MCTL0|=SREF_1;//选择内部参考电压源
ADC12CTL1 = SHP+CONSEQ_2; // 使用采样定时器
ADC12IE = 0x01; // 使能ADC中断
ADC12CTL0 |= ENC; // 使能转换
ADC12CTL0 |= ADC12SC;// 开始转换
#pragma vector=ADC_VECTOR
__interrupt void conversion()
{
uint buffer[32];
static uint index=0;
buffer[index++]=ADC12MEM0;
if(index==32)
{
index=0;
uchar i;
unsigned long sum=0;
for(i=0;i<32;i++)
sum+=buffer[i];
sum=sum/32;
}
}
得到的sum就是平滑滤波得到的数值,