打印

AD通道切换后转换结果不对??

[复制链接]
2620|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ljp319|  楼主 | 2010-1-15 15:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大体的程序如下:
  while(1)
{      
        if(temp_test>=N)//温度测定
        {
         temp_test=0;
         ADCON0|=0x1c;
         temp=AD();
         if(temp<tempalarm)
           tempover=1;
         else tempover=0;
        }

        delay200us();        
        ADCON0|=0x14;//采集踏板信号
        delay200us();
        pedal=0;
        ADRES=0;
        pedal=AD();
        PWMupdate(pedal);
        continue;
       }


char AD(void)
{
           char ADtemp=0;
            ADRES=0;
            ADGO=1;//启动转换
           while(ADGO==1){;}//等待转换完成
           ADtemp=ADRES;
            return ADtemp;
}

//200us延时程序
void delay200us()
{  
       int k=23;
       while(k--){;}                    
      }

温度输入通道直接接了个5V,踏板输入通道通过电位器产生0-5V电压,
程序中先采集温度(值为0xFF),后切换到踏板通道采集 但是每次采出来也是0xFF,
如果把温度采集的程序段去掉就正常了,
感觉是通道切换后AD采样电容上的电压没有降下来,但是加了延时还是这样 不知道怎么回事
请高手指教
沙发
yewuyi| | 2010-1-15 16:41 | 只看该作者
谁会看这些莫名其妙的CODE呢?!

使用特权

评论回复
板凳
ljp319|  楼主 | 2010-1-15 18:16 | 只看该作者
啥意思?

使用特权

评论回复
地板
ljp319|  楼主 | 2010-1-15 19:04 | 只看该作者
搞定了 我脑子抽了写错代码了

使用特权

评论回复
5
leizi2008| | 2010-1-19 09:14 | 只看该作者
哪错了啊?

使用特权

评论回复
6
xymxym| | 2010-1-19 11:11 | 只看该作者
我感觉很多人不愿意多写注释,真是一字千金!
其实写注释是一个很好的回顾和检查当前这段程序的好方法,我很多时候的BUG都是在给每一句写注释时发现的.

使用特权

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

本版积分规则

1

主题

3

帖子

0

粉丝