打印

有关ATD的问题

[复制链接]
1426|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hlhfootbal|  楼主 | 2007-7-29 10:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void main(void) { 
unsigned char number;
char AD_value;

Mark=0;
Content=0;//这两位是串口显示函数里的标志位
SCI0Init();

ATD0CTL2=0xC0;
ATD0CTL3=0x08;
ATD0CTL4=0x07;
ATD0CTL5=0xB0;
ATD0DIEN=0x00;

EnableInterrupts;
  
DDRB=0XFF;
while(1){
  while(!(ATD0STAT1 & 0x01));   //等待转换结束
  AD_value=ATD0DR0;//读取转换结果
  PORTB_BIT3=!PORTB_BIT3;
  delay_ms(10);
  WritedataToSCI0(100.3456,4);
  WritestrToSCI0(" ");
  WritedataToSCI0(AD_value*0.0037,6);
  WritestrToSCI0(" “)
}
参考电压是3.84V。因为串口能正常显示100.3456,所以我认为串口显示函数没有问题。但是串口显示的AD值不正常,比如给测的是在参考电压范围之内的电压值,但是它显示的是负值,而且值也不对。请各位路过的大虾指点指点。

相关帖子

沙发
张明峰| | 2007-8-3 22:34 | 只看该作者

变量定义

char AD_value 为符号数。AD结果可能大于0x80,对于此变量来讲就是负数了。

用 unsigned char

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

417

帖子

1

粉丝