- 杂志
 论坛 » MCU应用 » 又有问题,R8C/2B, 有关A/D 转换
 又有问题,R8C/2B, 有关A/D 转换  发表于 2008-06-12 16:14:41
呢称:jfs771
加我为好友

小弟在使用R8C/2B的芯片做到A/D转换的时候,又被卡住了。
有碰上过相同情况吗?提供个经验,谢谢啊
大概的情况:
Vref连接供电电源,3.3V
选择AN9(p1_1) 作输入电压,是经过电池连接两个电阻到地1/2分压过来。
电池电压大概3.8V,分压处大概是1.9V。这个1.9V是在AN9 没有连接的时候
读的,跟预想的一样
硬件连接上AN9 之后,有几种情况
1.AN9 处的电压被拉高,接近Vref的值,10BIT精度读出来1012。
   这种情况具体是什么配置造成的还不是很清楚,是把A/D转换集成到整个程序中发现的

2.AN9的电压被拉低,电压低到0.5V左右,读出来的值在175左右。
   下面的程序配置
3.电压会被拉低到0,读出来的值只有0或者1。
跟情况2差不多的配置,差别在Sfr配置的时候将pd1_2设置成1


相关源码:
void ADconvert_Sfr_init()
{
 
 pd1_1=0;
 #if 1 
 
 //adgsel0=1;  //选择AN8~AN11
 adcon0=0x05;  //引脚AN9,单次模式,选择f4

 adcon1=0x28;  //连接Vref。10位精度
 //adcon1=0x20;//8bit

 adcon2=0x09;
 
 
 adic=0x00;  //中断禁止
 #else
  #endif
 
}

UINT16 ReadBatt(void)
{
 UINT16 batt;
 UINT8 i;
 pu02=0;  
 pd1=0x00;//如果没有句,就会变成情况3
 ADconvert_Sfr_init(); 
 for(i=0;i<20;i++)
 {
  asm("NOP");
 }
 
 adst=1;
 while(adst==1);
 
 batt=(ad0&0x03ff); 
 //pu02=1;
 return batt;
 
}


关于我们 | 广告服务 | 企业会员服务 | 新手上路 | 联系我们 | 友情链接
《电子产品世界》杂志社 版权所有 北京东晓国际技术信息咨询有限公司
Copyright ©2002 ELECTRONIC ENGINEERING & PRODUCT WORLD. All rights reserved.
京ICP备060382号