中级会员
- 积分
- 470
- 威望
- 298
- 贡献
- 22
- 兑换币
- 2
- 注册时间
- 2009-12-7
- 在线时间
- 75 小时
|
1贡献
请问各位,为什么我的AD转换的数只有0 64 128 192 呢?我直接接VRH的时候是192 接VRL的时候是0 接其他的就一直在这几个数中跳动~下面是我的程序
void atd_init(void)
{
ATD0CTL2=0xc0;//电源;中断;外部触发;设置
ATD0CTL3=0x00;//队列长度,保持默认即可
ATD0CTL4=0x8e;//8位精度 2MHz的转换速度
//ATD0CTL5=0x80;//对齐格式 队列 通道 设置 转换启动
}
void main(void)
{
unsigned int a,b;
/* put your own code here */
SET_PLL();//设置总线时钟为60MHz
// uart_init();//初始化SCI通信接口
// mynum=uart_in();
// ext_init();//外部中断初始化
// ect_init();
initLCD();
// DS1302Init(&time[0]);
/* setpos(0,1);
LCDsendstr("DreamCar启动");
setpos(2,1);
LCDsendstr("长按运行");
setpos(3,1);
LCDsendstr("短按调试"); */
// keyinit();
// while(key());
// pwm_init();
atd_init();
EnableInterrupts;
for(;;) /* wait forever */
{
ATD0CTL5=0x80;//启动转换
while(!(ATD0STAT0&0x80));
CCD[0]=ATD0DR0L;
CCD[1]=ATD0DR1L;
CCD[2]=ATD0DR2L;
CCD[3]=ATD0DR3L;
CCD[4]=ATD0DR4L;
CCD[5]=ATD0DR5L;
CCD[6]=ATD0DR6L;
CCD[7]=ATD0DR7L;
setpos(0,0);
LCDsend(0x30+(CCD[0]/100),1);
LCDsend(0x30+(CCD[0]/10)%10,1);
LCDsend(0x30+(CCD[0]%10),1);
setpos(1,0);
LCDsend(0x30+(CCD[7]/100),1);
LCDsend(0x30+(CCD[7]/10)%10,1);
LCDsend(0x30+(CCD[7]%10),1);
}
/* please make sure that you never leave this function */
} |
|