最近在做一个很简单的ADC,就是用ADuC7060片内的温度传感器,读取AD值,但是每次读出来的值都是32767,有木有高手指点一下,谢谢
代码如下:
ADCMSKI = BIT1; // 使能ADC转换完成中断
ADCFLT = 0x7; // 1Khz 转换频率,
ADCMDE = BIT0+BIT7; // ADC连续转换,正常模式
ADC1CON = BIT15+BIT10+BIT8+BIT7 ; //辅助ADC使能,ADC1 输入通道温度传感器
ADCCFG = 0;
IRQEN = BIT10 ; // 使能 ADC1 中断
__irq __arm void IRQ_Handler(void)
{ unsigned long IRQSTATUS = 0;
IRQSTATUS = IRQSTA; //读出中断状态寄存器值
if ((IRQSTATUS & BIT10) == BIT10) //判断ADC1转换完成触发中断
{
Temp= ADC1DAT; //读出辅助ADC转换结果
}
}
本帖最后由 damiaa 于 2016-1-22 11:40 编辑
参考电压是多少。输入端的电压是多少,如果不论输入怎么变,输出都是32767。可能是初始化不对。去掉一些可有可无的东西。认真分析寄存器,哪个位配置不对。