完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好,我用的是PIC16F1829,在处理浮点值时有问题。它与MCP3421 ADC芯片一起用来测量电压或电流,这个项目的目的是建立一个DMM。在18位模式下,MCP3421给出三个字节的读数,对应于131071的amax计数,pLUS符号位。要将其转换为电压需要一些浮点运算。为了显示结果,我打算使用ftoa(float to ascii)函数。以下是我为测试部分过程而编写的一小段代码。它提取值的小数部分,乘以10^6,将结果强制转换为s整数,并使用整数到字符串函数将其转换为ascii。我已经测试过,整数到字符串函数在值为2147483647(即2^31-1,32位,1位用于符号)时正确工作。但是,当我尝试提取分数部分时,结果并不正确。例如,浮点值123.870012将所提取的分数部分显示为869184。对于较大的整数部分,误差变得更大,例如对于123456.870012,所提取的分数部分为0。尺寸适中,如6.3450,一切正常,抽取的分数为3450。我怀疑这是PIC16F1829芯片固有的局限性,但是我无法在数据表中找到任何关于它如何处理浮点数的信息。有什么办法可以达到更好的准确度?当我使用CC386 IDE在另一个C编译器(不编程芯片)上运行上述代码时,即使对于大值和小数部分到8或更多的小数位,也能得到正确的结果。非常感谢您的帮助。肯。
|
|
相关推荐
8个回答
|
|
启用32位浮点吗?你看到的可能是24位浮点引起的。
|
|
|
|
您可能遇到这样一个事实,即浮点数具有有限的分辨率(24位或32位),随着整体(或整数)部分的增大,这会导致小数部分的粒度变小。建议:不要使用浮点数,它们非常慢,而且使用大量的ROM,而是使用缩放整数或分数。
|
|
|
|
代码标签是这样的,没有空间[代码]无符号char i;(/代码)
|
|
|
|
我强烈建议您阅读这个http://float-point-gui.de/basic/这是一个网站,专门针对所有具有浮点数字的论文,这些论文根本不像人们最初认为的那样工作。这是一个辉煌的资源。
|
|
|
|
“要将电压转换成电压需要浮点运算。”“不,不需要,这是一个选项。固定点和整数数学是其它选项。想想毫伏和毫安。”
|
|
|
|
所以这就是你看到的原因:修改的IEEE 754 24位->符号1位,指数8位,Mantissa 15位。你能得到123.870012的最近值是什么?你知道尾数的最小增量表示1/(2^15),因为这是浮点数15位尾数的工作原理。我们还知道,我们必须把数字表示为1.23870012,因为浮点数就是这样工作的,这意味着我们的精度如何?我们可以看到,增加尾数的LSB将使数字增加0.00003051757812。这意味着我们能够保证的最好精度是5小数,对于缩放的数字,在我们的例子中是3小数(是的,它真的那么糟糕!)这种情况下的误差只有0.00000828,这低于您选择使用的数字系统所能达到的精度。这就是为什么在这些情况下,我们更喜欢不使用浮点或双倍数,而是使用缩放的整数(想想毫伏或微伏)来表示值,因为我们有更好的精度,上面提到的链接有一个很好的解释。一个24位浮点数可以表示一个范围+1*10^128(粗略地),但是我们只有16位来表示尾数,这意味着这些数字的绝大部分不能被精确地表示,因为要做到这一点,我们需要129位,但是我们只使用了24...
|
|
|
|
当你的代码被包在[代码]标签中时,毛病就会消失——这是因为由I索引的数组被解释为“开始斜体”标签。这是因为芯片根本不处理浮点数字。对于这些芯片,浮点是一个软件结构,其中3或4字节。ES(取决于编译时选项)用于每个值,并且调用编译器函数帮助所有操作。每个计算机科学家应该知道浮点算术会告诉你比你想象的更多。
|
|
|
|
你好,昨天试图回复,但我的帖子似乎没有通过。所以我现在再试一次:谢谢大家的回复。这里有很多值得思考的问题——我在数字处理方面的误解。我将研究不动点和整数数学,并将跟进建议。TED WEB链接。可能会有更多的问题回来。还注意到代码的信息,正式编辑,谢谢。肯。
|
|
|
|
只有小组成员才能发言,加入小组>>
5153 浏览 9 评论
1994 浏览 8 评论
1924 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3167 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2221 浏览 5 评论
717浏览 1评论
604浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
489浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
618浏览 0评论
516浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-16 16:24 , Processed in 1.422384 second(s), Total 90, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号