完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我将已经在ESP8266和一些ARM上运行的现有应用程序移植到PIC32MZ(更确切地说,移植到PIC32MZ2048EFM064)。我使用XC32 V1.42.原来,StRODD()实现总是返回0。考虑一下:当strtod()返回时,val等于0,而p2被正确地设置为p+5,因此,strtod实际上解析了数字,但是由于某种原因不能返回正确的结果。知道如何解决这个问题吗?我胡乱地猜测,由于某种原因,可能禁用了双重算术,我需要一些编译器标志来启用它,但是没有:当我手动设置双重值时,它可以工作。
以上来自于百度翻译 以下为原文 I'm porting existing application, which already runs on ESP8266 and some ARMs, to PIC32MZ (more precisely, to PIC32MZ2048EFM064). I use XC32 v1.42. Turns out, strtod() implementation always returns 0. Consider: char *p = "123.4 foo"; char *p2 = NULL; double val = strtod(p, &p2); When strtod() returns, val is equal to 0, whereas p2 is properly set to p + 5, so, strtod actually parses the number, but for some reason fails to return the proper result. Any idea how to fix this? As a wild guess I was thinking that double arithmetic might be disabled for some reason, and I need some compiler flag to enable it, but no: when I set double value manually, it works. |
|
相关推荐
2个回答
|
|
好的,我找到了关于这个问题的老线索:HTTPS://www. McCHIP.COM/FUMMS/TM.ASPX?M=922599和FP=1将原型改变为“固定”。
以上来自于百度翻译 以下为原文 Ok I managed to find old thread about this: https://www.microchip.com/forums/tm.aspx?m=922599&fp=1 Changing the prototype to extern long double strtod(const char *, char **); "fixed" it. |
|
|
|
我对最近的帖子有些记忆,但不确定。那么好
以上来自于百度翻译 以下为原文 I had some memory of a recent thread but was not sure. good then |
|
|
|
只有小组成员才能发言,加入小组>>
5243 浏览 9 评论
2035 浏览 8 评论
1955 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3208 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2258 浏览 5 评论
778浏览 1评论
671浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
597浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
679浏览 0评论
577浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 11:34 , Processed in 1.274310 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号