首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

[求助]GP32AD采样出错???

[求助]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);
}

又有一个新问题:我现在需要将一个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

该如何解决??
第一个问题,可以检查一下AD的参考低电平和地的电平信号。
第二个问题,应该是警告而不是错误。将浮点数转换为整型数当然会损失数据,因此会产生警告。
海纳百川  有容乃大
谢谢版主!第一个问题已经解决了,可第二个问题如何在编译时去掉该警告提示??
警告并不影响你的编译,不用去掉。
海纳百川  有容乃大
返回列表