打印
[PIC®/AVR®/dsPIC®产品]

关于10f322AD转换问题

[复制链接]
931|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
azdd|  楼主 | 2017-7-24 16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
写了一个AD转换程序,读取结果寄存器ADRES值之后,将它转换为电压值,编译就不成功了,去掉那两句运算语句就可以编译成功,这是什么原因造成的,求大神解答一下。片子用的是PIC10F322,具体程序如下。
void get_ad()
{
    float advalf;   //定义浮点型数
    GO_nDONE=1;        //AD转换启动
    while(GO_nDONE);    //等待AD转换完成
    adval=0x00;   //初始化寄存器
        adval=ADRES;// 00000000  //读取八位
        advalf=adval/256.0*3.3;//==2.3843   //转化数据
        adval=(uint)(advalf*1000);   //浮点型强制转换为整型
}
沙发
feelhyq| | 2017-7-25 13:46 | 只看该作者
可以这样做:
unsigned int advalf;
advalf=adval * 1000 /256;  /* 将参考电压3.3V先放大1000倍后 与 adval相乘,然后再除以256,都不用强转了,结果还一样,多方便 */   

使用特权

评论回复
板凳
azdd|  楼主 | 2017-7-26 15:50 | 只看该作者
feelhyq 发表于 2017-7-25 13:46
可以这样做:
unsigned int advalf;
advalf=adval * 1000 /256;  /* 将参考电压3.3V先放大1000倍后 与 adva ...

一语惊醒梦中人啊。强。。。

使用特权

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

本版积分规则

28

主题

86

帖子

1

粉丝