AVR STUDIO仿真乘法、除法出错
我到现在还是不相信,用ICCAVR7.22做的程序,在AVRSTUDIO4中仿真时计算出错。截图如下:
图中红色圆圈中的语句,up_step=ad_in_f1/t_up_now;
up_step和ad_in_f1为浮点数,t_up_now为 uint类型。
ad_in_f1=1937,t_up_now=200,计算结果应该是9.685,结果成了4.2e-022
我是真不知道哪里错了,求助!
更加崩溃了,t_up_now=200;把数值赋给t_up_now_f后数值成了72,疯了
加强制类型转换 将int转成float up_step=(float)(ad_inf1/t_up_now); 运行下看看效果,是否药到病除。 cclgxuanshao 发表于 2014-9-19 13:06
运行下看看效果,是否药到病除。
看了下,运行结果还是错的。晚上发图,发现有几个地方都算错了。 更加崩溃了,t_up_now=200;把数值赋给t_up_now_f后数值成了72,疯了
---------------------------------------
你这条的错误应该是t_up_now_f与t_up_now的类型不符。200的最高位被浮点处理成符号位了。
浮点数,在赋值的时候增加一个.0看下效果。就比如,1937.0这样加入运算看下效果。 tomy 发表于 2014-9-20 09:57
更加崩溃了,t_up_now=200;把数值赋给t_up_now_f后数值成了72,疯了
------------------ ...
还请明示 huangxiaolpbany 发表于 2014-9-19 13:35
看了下,运行结果还是错的。晚上发图,发现有几个地方都算错了。
解决了没,最后是啥个情况 cclgxuanshao 发表于 2014-9-22 16:22
解决了没,最后是啥个情况
没解决,但是奇怪的是,烧进MEGA16的程序运行符合预期。
另外发了个帖,http://www.amobbs.com/thread-5596990-1-1.html
我怀疑是AVR STUDIO的问题
页:
[1]