完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,这是我在这个论坛的第一篇文章。我在PIC16F83和SaveTf函数中使用浮动值有问题。我使用MPLAB X IDE V3.20i编写一些说明来说明:浮点A;int b;char缓冲器[20 ];…a=5×b/1.24SaveTf(缓冲器,“Volt= %4.2f AMP=%d”,a,b);当编译程序时出现的许多错误如下::0:错误:(1347)找不到0x108字(0x108合计)为PSEC。在“类代码”(最大未使用邻接范围0xA0)中的T“TeN17”,如果用PIC16F87执行相同的程序,编译就没有问题,如果我用SpIFTF函数加上十进制值(替换浮动值),编译就成功了。现在如何解决这个问题。我希望你能帮助我。问候,西尔维奥。
以上来自于百度翻译 以下为原文 Hello, this is my first post in this forum. I have problems working with the PIC16F883 and the sprintf function with floating values. I am using mplab x ide v3.20 I write some instructions to illustrate: float a; int b; char buffer [20]; ... ... a = 5.0 * b / 1.24 sprintf (buffer, "Volt=% 4.2f Amp=% d", a, b); and when compiling the program many errors like this appear: : 0: error: (1347) can not find 0x108 words (0x108 withtotal) for psect "text17" in class "CODE" (largest unused contiguous range 0xA0) If I perform the same program with the PIC16F887 the compilation is carried out without problems and if I use the sprintf function with decimal values (in replacement of floating values) the compilation is successful. I really do not know how to solve this problem. I hope you can help me. Regards, Silvio |
|
相关推荐
5个回答
|
|
你没有闪存,需要收紧代码,使它变小,转到更大的部分(887),或启用PRO模式,以更好地优化。浮点函数使用大量的代码,所以如果可能的话切换到定点。
以上来自于百度翻译 以下为原文 You're out of flash and need to tighten up the code to make it smaller, go to a bigger part (887), or enable pro mode for better optimization. Floating point functions use lots of code, so switch to fixed point if possible. |
|
|
|
不幸的是,照片已经被焊接到板上,所以我会尝试使用定点程序。谢谢你的回复。西尔维奥
以上来自于百度翻译 以下为原文 Unfortunately the PICs are already welded to the plates so I will try using fixed point routine. Thanks for the reply. Silvio |
|
|
|
XC8在PRO模式下运行(而不是免费)会节省大量的代码空间。一个亲永久许可有点贵,但PRO模式可以启用一次免费60天的“评估”期间,我相信可以租用30美元(美国)每月。这取决于你的时间价值,这可能是一个更便宜的选择。
以上来自于百度翻译 以下为原文 XC8 run in PRO mode (instead of free) would result in significant code space savings. A PRO permanent license is somewhat expensive, but PRO mode can be enabled once for a free 60 day "evaluation" period, and I believe can be leased for $30 (US) per month. Depending on the value of your time, this may be a cheaper option. |
|
|
|
你可以试试ftoA()。它可能有较少的开销:
以上来自于百度翻译 以下为原文 You might try ftoa(). It may have less overhead: |
|
|
|
我不太确定这一点,因为XC8的FTOA-()是一个快速和肮脏的,使用SimultFe()来处理一个浮点数作为两个长整数,整数部分和小数部分。比较它们会是一个很好的练习。;)
以上来自于百度翻译 以下为原文 I'm not so sure about that, because XC8's ftoa() is a quick and dirty one that uses sprintf() to handle a float number as two long integers, integer part and fractional part. It would be a good exercise to compare them. ;) |
|
|
|
只有小组成员才能发言,加入小组>>
5178 浏览 9 评论
2003 浏览 8 评论
1931 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3177 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2228 浏览 5 评论
737浏览 1评论
622浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
509浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
635浏览 0评论
533浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 15:03 , Processed in 1.393265 second(s), Total 87, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号