unsigned int AD_data;
float AD_v;
AD_v=(unsigned long)AD_data*4945/1024;
------------------------------------------------------------------
注释:AD_data是ad转换器的采样值,大小为0x0120,
4945是ad参考电压,就是4.945v
就是一个将采样值转换为电压值的程序
然后为什么计算出来,电压值AD_v总是0或者-1,不明白问题出哪里了,求助~!!!
unsigned int AD_data; float AD_v; AD_v=(unsigned long)AD_data*4945/1024; --------------------------
答案:2 悬赏:30 手机版
解决时间 2021-03-12 13:29
- 提问者网友:人傍凄凉立暮秋
- 2021-03-11 15:05
最佳答案
- 五星知识达人网友:猎心人
- 2021-03-11 16:16
你的程序是电脑上运行的,还是单片机之类的运行的。
如果是电脑上运行AD_v=(unsigned long)AD_data*4945/1024;中,明显要把unsigned long 改为float,然后把你整个程序都贴给我,特别是你是怎么查看AD_v的结果的。
如果是单片机之类的,首先要确定单片机是多少位的,编译器支持不支持float行,这里很有可能发生溢出。
如果是电脑上运行AD_v=(unsigned long)AD_data*4945/1024;中,明显要把unsigned long 改为float,然后把你整个程序都贴给我,特别是你是怎么查看AD_v的结果的。
如果是单片机之类的,首先要确定单片机是多少位的,编译器支持不支持float行,这里很有可能发生溢出。
全部回答
- 1楼网友:鱼芗
- 2021-03-11 17:36
你好!
地方
打字不易,采纳哦!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯