Board logo

标题: [求助]GP32AD采样出错??? [打印本页]

作者: dchuser    时间: 2007-6-24 10:41     标题: [求助]GP32AD采样出错???

我在使用GP32芯片里面的AD模块进行AD采样时,发现当被测电压小于0.5V时,AD采样的值均为0x16,当被测电压大于0.5V时,AD采样的值才正确,这是什么原因?? 部分程序如下:
//寄存器定义
ADSCR = 0b00000000; //关闭ADC电源,转换结束不产生中断,一次ADC转换,
ADCLK = 0b00110000; //A/D采用内部总线时钟,ADC采样频率= Fbus/n=2M/2=1M左右
//一路AD采样
/**** ADC获取1路AD转换结果 channel:通道号 *****/
unsigned char ADCvalue(unsigned char channel)
{
//选取通道号ADCH4-ADCH0=000000--00111
unsigned char tmp;
channel = channel & 0b00011111;
tmp = ADSCR | channel;
ADSCR = tmp;
do
{
asm("nop");
}while (ADSCR_COCO == 0); //转化结束
tmp = ADR; //读采样结果
return(tmp);
}


作者: dchuser    时间: 2007-6-24 23:13

又有一个新问题:我现在需要将一个float型数据的整数部分赋给一个int型变量,编译时出现错误:
unsigned int a;
float b;

b=723.32;
a=(unsigned int)b;

提示如下:
C2705: Possible loss of data
C5919: Conversion of floating to unsigned integral

该如何解决??

作者: strongchen    时间: 2007-6-25 09:52

第一个问题,可以检查一下AD的参考低电平和地的电平信号。
第二个问题,应该是警告而不是错误。将浮点数转换为整型数当然会损失数据,因此会产生警告。
作者: dchuser    时间: 2007-6-25 10:49

谢谢版主!第一个问题已经解决了,可第二个问题如何在编译时去掉该警告提示??
作者: strongchen    时间: 2007-6-25 10:52

警告并不影响你的编译,不用去掉。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0