ADC10MEM的值总是0x3ff?

2019-03-24 10:02发布

代码:
/*参考电压为:V+=Vref+,V-=Vss
* 采样和保持时间8个ADC10CLK周期
* 采样率设为50ksps
* 参考源只有在采样和转换时开启(降低功耗)!!!!!可是每次转换开启参考源,不如就一直开启吧╮(╯▽╰)╭
* 触发管脚SHI信号(此处使用的是ADC10SC)的第一个上升沿触发采样定时器,之后的采样和转换在前一次完成后自动进行
* 选择内部参考源为1.5V
* 开启参考源
* 开启ADC10模块
* ADC10使能中断(中断标志位ADC10IFG在转换完成后,自动变为0)????
* ADC10采样使能不开启
* ADC10采样开始(ADC10SC由0置1,产生了一个上升沿)
* 选择外部通道4(P1.4口对应的A4)
* ADC10时钟选择为MCLK???????合适么(O_O)?------->为在短时间内达到高的分辨率
* 工作模式选择单通道重复采样
* 开启外部通道A4*/
void adc10_initial()
{
        ADC10CTL0|=SREF_1+ADC10SR+REFON+ADC10SHT_3+REF2_5V+MSC+ADC10ON+ADC10IFG+ADC10IE+ADC10SC+ENC;
        ADC10CTL1|=INCH_4+ADC10SSEL_2+CONSEQ_2;
        ADC10AE0|=0x10;
}

#pragma vector=ADC10_VECTOR
__interrupt void ADC10_Interrupt()
{
        _DINT();
        if((ADC10MEM<=41)&&(ADC10MEM>=20))
                P1OUT&=~BIT6;
        else
                P1OUT|=BIT6;
        _EINT();
}
问题:
我这样设置后,即使P1.4口接0V电平,ADC10MEM的采样值都是0x3ff?
请问我哪里设错了吗?
还是说ADC10MEM的值不被读走就不能重设呢?
必须把ADC10MEM的值赋给另一个变量才叫读走ADC10MEM吗?
求指教!谢谢!


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
wateras1
2019-03-24 18:10
ADC的中断标志需要手动清掉或者你读取ADCMEM里面的值也可以清掉中断标志,如果你接0V还是显示高电平,那你需要检查你的硬件电路或者软件了。

一周热门 更多>

相关问题

    相关文章