完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电压采用芯片VCC电压,10位ad,结果出来最大1024,最小当然是0了,要把这个值换成电压应该怎么计算呢?
不用浮点的算法,是不是浮点算法比较费芯片资源啊?我用整数算的,最后都用到32为了! 求一个比较好的计算方法。 u32 z; u16 x=5000; z=adch*x; z=z/1024; z已经声明了是32位的, 写的比较乱,因为开始我用的U16,结果出来的数不对,找毛病弄得。 如果用u32的话就应该是: u32 z; z=adch*5*1000/1024; 放大1000倍 有没有更好的方式啊? |
|
相关推荐
13个回答
|
|
云汉达人
基本的方法就是理论上,VCC电压的ADC值就是1024,GND的ADC值就是0,这其中的数据就是根据比例进行计算出来的。 但是由于电路布局布线、元件、电源纹波等等,ADC的精度总是达不到标称的ADC精度。一般好的会有一、两位的误差,这里要等到更准确的ADC采样值,一般采用的是过采样技术。过采样可以百度。 也要增加一些滤波,如:http://blog.csdn.net/u010552215/article/details/50833689 你的这个式子,按理论上是可以,如果像DSP28335那样有浮点运算最好是用浮点,只有整型时,也只有放弃一些精度了。 这样计算是一种方法,也可以使用查表法的。使用存储空间来换取时间。 |
|
|
|
|
|
|
|
本帖最后由 MOP 于 2016-10-25 03:20 编辑
奇怪的是,都沒人發現範圍有問題,10Bit的話是0~1023唷,所以code就如下 u32 z=adch*5000/1023;是針對您的需求,不要使用到浮點數,所以單位是mV 如果不想被整數除法捨棄掉精準度的話,可參考以下我寫的round function u32 get_round(u16 adch,u8 digit) { u32 order; u8 i; if(digit <=5) { for(i=0; i=512) return (adch*5*order/1023)+1; else return (adch*5*order/1023); } return 0; }可選擇1位~6位精準範圍值,再往上乘會超出表示範圍,即overflow,將結果計算並且依照餘數做四捨五入 get_round(1023,5); //500000 get_round(1023,3); //5000 get_round(1023,0); //5以上供參考,希望有幫助:) |
|
|
|
云汉达人
MOP 发表于 2016-10-25 01:52 凌晨三点多发表的回复……:sleepy:大半夜不睡觉的么……还是说有时差? |
|
|
|
|
|
|
|
ad采集这块没开始学习呢
|
|
|
|
你就是想得到一个实际电压值吧,看你参考电压是多少:
Vout = 参考电压*(采集的十六进制)/1024 如果是 参考是3.3V ,那 采集到1024,就是3.3V, 采集到512,就是 1.65V |
|
|
|
少数浮点没关系的。。我还用过求反三角函数的。。
|
|
|
|
7943603 发表于 2016-10-25 16:25 你这个式子我试过,最后的的得数依然要用32位的,不然出来不行的,你可以试一下,我开始用的16位的,这个式子不成立的 |
|
|
|
瞎折腾 发表于 2016-10-25 20:49 你没有理解,所有的数都要转成32位处理,这个是不错的,我说处理没说放弃32位 |
|
|
|
7943603 发表于 2016-10-25 21:44 计算还要按照32位来计算 |
|
|
|
没有实际的需求描述,仅仅在运算上来说,很难得到你要的答案。
|
|
|
|
楼主有满意答案,请尽快选最佳答案
|
|
|
|
只有小组成员才能发言,加入小组>>
772 浏览 0 评论
1148 浏览 1 评论
2527 浏览 5 评论
2858 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2709 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1064浏览 3评论
190浏览 2评论
453浏览 2评论
366浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
453浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 20:39 , Processed in 1.205600 second(s), Total 103, Slave 83 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号