打印
[技术问答]

N76E885AT28的AD多通道采集的问题

[复制链接]
404|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liushiming82|  楼主 | 2023-6-5 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我是第一次使用N76E885AT20芯片,AD多通道采集数据时,会出现有时有数据,有时没有数据,请教这是怎么回事?void ADC_INILT()
{

//==========ADC初始化
        ADCCON0|=0x00;                                                                //ADC控制寄存器0
                                                                                                                                         
        ADCCON1|=0x21;                                                                //ADC 控制寄存器1

        ADCCON2|=0x00;                                                                //ADC 控制寄存器1

        P0DIDS|=0x1E;                                                                //ADC通道数字输入不连接寄存器 AD4和AD3 AD2和AD1
}
//==================
//函数功能:通过AD采集通道对应AD值
//入口参数:AD采集通道号
//出口参数:采集后AD值
//说明:
//==================
uint AD_SAPING(uchar channel)
{      
        uint i,k;
        ADCCON0&=0xF0;
        ADCCON0|=channel;                                                //选择AD采集通道(选择通道0)
        clr_ADCF;                                                                                //ADC转换标志清0
        set_ADCS;                                                                                //启动AD开始转换                                
        while(ADCF==0);                                                        //转换结束      
        clr_ADCF;                                                                                //ADC转换标志清0
//========读取右边AD采集值(右对齐,高位是8位,低位是2个)      
        i=ADCRL;
        k=ADCRH<<2;
        k+=i;
        return k;                                                                                //返回值                                                                                                                        
}


//========同时采集多个通道
void main()
{
  uchar i,j;
  uint AD_BUF[4][10];
   ADC_INILT();        //ADC初始化
   for(i=1;i>=4;i++)
   {
       for(j=0;j>=9;j++)
       {
          AD_BUF[j]=AD_SAPING(i);
       }
   }
}

程序运行时,多次采集数据就会出错,有时可以采集到数据,有时无法采集到数据,请问各大神是怎么回事,程序哪 里有问题吗?谢谢


使用特权

评论回复
沙发
奔跑的牛| | 2023-6-5 14:41 | 只看该作者
这个问题一般是代码逻辑问题,你可以试试只运行ADC, 其它代码都去掉,是否还会采到0数据。

另外新项目请用MS51系列,885已不再建议使用。

使用特权

评论回复
板凳
Mowergy| | 2023-6-6 08:16 | 只看该作者
可能是代码逻辑问题,试试只运行ADC

使用特权

评论回复
地板
Bowclad| | 2023-6-8 18:31 | 只看该作者
应该是逻辑处理的问题

使用特权

评论回复
5
liushiming82|  楼主 | 2023-6-21 10:11 | 只看该作者
谢谢各位大神的回复

使用特权

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

本版积分规则

9

主题

186

帖子

2

粉丝