ADC的初始化代码如下:
REGCON=1;//开启电源稳压器
ADCON=0x11;//选择外部参考电压
ADT=173;//adc转换频率为25HZ
ADCH=0x8b;
PGAM=0x84; //PGA Gain=12.5,chop=1K
//PGAM=0x94; //PGA Gain=25,chop=1K
//PGAM=0xA4; //PGA Gain=50,chop=1K
//PGAM=0xB4; //PGA Gain=75,chop=1K
//PGAM=0xC4; //PGA Gain=100,chop=1K
//PGAM=0xD4; //PGA Gain=125,chop=1K
ADRAND=0x80;
EADC=1;//使能ADC中断
采用中断方式读取ADC数据
signed long hcval=0;
ADCON&=0xbf;//清标志位
hcval=ADDH;
hcval<<=8;
hcval|=ADDM;
hcval<<=4;
hcval|=(ADDL&0x0f);
if(hcval&0x80000)
{
hcval=0x100000-hcval;
adcbuf[adcbuf_cout]=0-hcval;
adcbuf_cout++;
}
else
{
adcbuf[adcbuf_cout]=hcval;
adcbuf_cout++;
}
if(adcbuf_cout>=5)//联系采集5次数据
{
adcbuf_cout=0;
adc_collect_over=1;
ADCON&=0x7f;//关闭ADC
}
else
ADCON|=0x80;
进入仿真器状态后,电机KEIL全速运行就会弹错,“在空闲模式”对话框,然后只能给单片机重新上电才能再次连接仿真器。
蛋疼,资料也差了,也根据165程序对比过,也没有发现啥问题啊,但只要设置PGAM寄存器就不行,那我大神帮指点下,怎么回事啊
|