打印

MA84G56芯片AD转换程序问题

[复制链接]
2765|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
philein|  楼主 | 2012-5-3 21:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void ADC_Init(void)
{



//ADCON0 = 0xE0;   //使能ADC,选择全差分模式P1.0,P1.1为输入 11100000B

ADCON0 = 0x80;

delayms(100);

ADCFG0 = 0x10;   //0001 0010:SYSCLK/2,ADRJ=1,RESULT右对齐,全速模式

P1AIO = 0xff;
//将P1都设定为输入模式,AD转换必须禁止输出
}
ADC_Convert()
{
    ADCON0|=0x08;        //ADCS=1, 启动ADC转换
    while((ADCON0 & 0x10)!= 0x10);

return(ADCDH<<8 + ADCDL);
}



在main中调用ADC转换,但是好像结果一直有问题,转换出错,求教或者那位帮忙给个例程
沙发
MG_FAE| | 2012-5-4 09:22 | 只看该作者
本帖最后由 MG_FAE 于 2012-5-4 09:26 编辑

LZ看看这样行不?

ADCON0 = 0xE0;   //使能ADC,选择全差分模式P1.0,P1.1为输入 11100000B
delayms(100);
ADCFG0 = 0x10;   //0001 0010:SYSCLK/2,ADRJ=1,RESULT右对齐,全速模式
P1M0=0x03;  //P1.0,P1.1为输入模式
P1M1=0xFC;
P1AIO = 0xff; //将P1都设定为输入模式,AD转换必须禁止输出
//ADC_Convert()
//{
    ADCON0|=0x08;        //ADCS=1, 启动ADC转换
    // while((ADCON0 & 0x10)!= 0x10);
   //等待 ADCON0.4 =1 ,ADC转换完成

使用特权

评论回复
板凳
philein|  楼主 | 2012-5-5 11:59 | 只看该作者
我现在的应用是一个反射式红外对管,想先看看不挡住红外的时候的AD结果,当挡住的时候的AD结果,但是目前转换出来的ADCDH和 ADCDL的AD结果在不停的跳动。
PSLSD:好像没什么改变嘛?

使用特权

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

本版积分规则

0

主题

13

帖子

0

粉丝