|
代码:
/*参考电压为: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吗?
求指教!谢谢!
|
|