打印

PICC编译error原因,谢谢

[复制链接]
5379|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
busdriver|  楼主 | 2010-10-27 16:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Build D:\Projects\Power_supply\Firmware\power_supply for device 16F887
Using driver C:\Program Files\HI-TECH Software\PICC\9.71a\bin\picc.exe
Make: The target "D:\Projects\Power_supply\Firmware\main.p1" is up to date.
Make: The target "D:\Projects\Power_supply\Firmware\adc.p1" is up to date.
Make: The target "D:\Projects\Power_supply\Firmware\i2c.p1" is up to date.
Make: The target "D:\Projects\Power_supply\Firmware\led.p1" is up to date.
Make: The target "D:\Projects\Power_supply\Firmware\max5820.p1" is up to date.
Executing: "C:\Program Files\HI-TECH Software\PICC\9.71a\bin\picc.exe" -opower_supply.cof -mpower_supply.map --summary=default --output=default main.p1 adc.p1 i2c.p1 led.p1 max5820.p1 --chip=16F887 -P --runtime=default --opt=default -D__DEBUG=1 -g --asmlist "--errformat=Error   [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s"
(1273) Omniscient Code Generation not available in Lite mode (warning)
HI-TECH C Compiler for PIC10/12/16 MCUs (Lite Mode)  V9.71a
Copyright (C) 2010 Microchip Technology Inc.
Error   [1091] C:\Program Files\HI-TECH Software\PICC\9.71a\sources\float.c; 86. main function "_main" not defined
********** Build failed! **********

程序没用浮点运算啊,只是有很复杂的整数运算,是否是在计算的过程中导致浮点错误?

vout_current = 25*adc_result*115/512/3;//current calculation
vout_voltage = 5*adc_result*33*(R15+R16)/512/R15;//voltage calculation

dac_data = 49*64*(vout_ratio.denorminator + 2*vout_ratio.counter*vout_ratio.numerator)/33/vout_ratio.numerator;

对复杂整数运算,应如何写表达式以避免浮点运算,谢谢!
沙发
aaa2742| | 2010-10-27 18:15 | 只看该作者
乘以100等这样的数,最后在除以100

使用特权

评论回复
板凳
兰天白云| | 2010-10-27 19:20 | 只看该作者
增加一个中间变量,把长长的一句分开几行写看看,应该会改善

使用特权

评论回复
地板
busdriver|  楼主 | 2010-10-27 20:03 | 只看该作者
我正是如2楼所说这样做的。所以公式就比较长。

使用特权

评论回复
5
yewuyi| | 2010-10-28 08:44 | 只看该作者
计算过程中的结果可能超出了变量的表达范围。

要注意变量在公式中可能被强制转换,所以长公式一般建议把它拆分开了些,更容易看懂。

使用特权

评论回复
6
busdriver|  楼主 | 2010-10-28 11:38 | 只看该作者
增加long int中间变量,然后化长为短,问题解决,多谢各位!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

44

主题

416

帖子

0

粉丝