尊敬的 Sirs:
我正在使用 ADC12B A/D 转换器来测量温度传感器。 它足够快、无需在中断下运行。 它运行一段时间、然后开始读取0。
初始化似乎无法写入 ADC12CTL0寄存器。 功能如下:
//只要 ADC12ENC=0,就配置 ADC12
ADC12CTL0 &=~ADC12ENC;//将 ADC12ENC 设置为0 在此指令之后、ADC12CTL0读取0x800
ADC12CTL0 =(ADC12ON + ADC12SHT0_2);//打开 ADC12,设置采样时间 在此说明之后、ADC12CTL0仍读取0800
ADC12CTL1 = ADC12SHP;//使用采样计时器。 ADC12SHP 是采样保持脉冲
ADC12CTL2 = ADC12RES_2;// 12位转换结果
ADC12MCTL0 = ADC12INCH_15 | ADC12VRSEL_4;// VR+= VeREF+(外部)且 VR-=AVss、INCH_15 =A15、INCH_12=A12 P3.0
//ADC12MCTL0 = ADC12INCH_30 | ADC12VRSEL_4;//温度传感器为 x1E=30d
ADC12CTL0 |= ADC12ENC;//启用转换。
disable_interrupts ();
ADC12CTL0 |= ADC12SC;//开始转换软件触发
while (!(Stat & BIT0))//始终为 BIT0
STAT=ADC12IFGR0;;
ADCvar = ADC12MEM0;//读取转换结果(显然第一个 conv 进入 mem0)
__no_operation();//在此设置断点
enable_interrupts ();
返回 ADCvar;//返回 bat V
希望您能看到这有什么问题!
谢谢
John Moore