智能车制作

标题: 关于ADC10序列通道重复采样 [打印本页]

作者: 六月り    时间: 2013-7-30 22:05
标题: 关于ADC10序列通道重复采样
我用的A7、A4、A3三个外部通道采样,但是每次采样完一个序列周期,串口显示的采样结果只有A7的,A4、A3的和A7的一样,并且跟随它变化。通过寄存器窗口查看ADC10MEM发现问题是出现在采样转换阶段,但是检查了好几遍不知道哪里错了!
还有觉得中断赋值的时候写的不对!
求大神指点!!
[attach]49384[/attach]
void ADC()
{
ADC10CTL1=CONSEQ_3;    //ADC工作模式选择位单通道重复采样
ADC10CTL0=REFON+SREF_1+REF2_5V;   //开启参考源,基准源选择内部参考源,参考源电压默认为1.5V
ADC10CTL0 |= ADC10SHT_3+MSC; //采样保持时间设为64个ADC10CTLK周期,采样转换模式为采样输入信号单次触发模式
ADC10CTL1|= ADC10SSEL_3+SHS_0; // ADC10时钟源选择MCLK,采样保持源选择ADC10SC
ADC10CTL1=INCH_7;    //采样通道选择内部温度采样通道A10
ADC10CTL0 |= ADC10ON+ADC10IE;   //打开ADC10模块
ADC10AE0=0x98;
}


主函数里面:
.............
  __bis_SR_register(GIE); //开总中断
  while(1)
  {
    ADC10CTL0 |=ENC+ADC10SC;
    __delay_cycles(10000);
}
...........


中断部分:
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR (void)
{
ADC10_Result=ADC10MEM;
       u++;
       if(u>2)
       {
        u=0;
        ADC10_A7=ADC10_Result[0];
        ADC10_A4=ADC10_Result[1];
        ADC10_A3=ADC10_Result[2];
       }


作者: zdhly0401    时间: 2013-10-7 19:38
ADC12MEM0寄存器要选择采集那个通道,你程序里没有体现




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2