打印

为什么这么简单的程序调试结果都会出错?

[复制链接]
2244|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
与时俱进|  楼主 | 2008-4-9 15:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <pic.h>
#include <pic16f91x.h>
float x=0,t=0;
void main(void)
{
while(1)
    {
    x=1.0;    
    t=t+1.0;
    }
x=0;
}
上面的程序第一次运行到
t=t+1.0;
这一行时x的结果为什么是-5.831554e-039(无论变量观察窗口还是鼠标指向x)?
沙发
zgl7903| | 2008-4-9 18:26 | 只看该作者

用的什么编译器?还要注意数据使用的标准

使用特权

评论回复
板凳
与时俱进|  楼主 | 2008-4-10 08:43 | 只看该作者

mplab v7.30 & HI-TECH PICC V9.5

贴不了图。

使用特权

评论回复
地板
与时俱进|  楼主 | 2008-4-10 09:57 | 只看该作者

哪位抽空帮忙调试看看

调试上面的程序,看看是否结果也是这样的!
我还试了上面的程序,使用KEIL C51调试结果是正常的!

使用特权

评论回复
5
l0p0c| | 2008-4-10 14:47 | 只看该作者

HI-TECH PICC V9.5

這個東西哪裡有啊?
可以分享下不?

使用特权

评论回复
6
笑语人生| | 2008-4-10 15:58 | 只看该作者

我用mplab v7.30没问题

使用特权

评论回复
7
兰天白云| | 2008-4-10 17:15 | 只看该作者

盗吧的吧,改掉这一句试试看,然后加些代码,再改回来看看

使用特权

评论回复
8
richardvip| | 2008-4-10 20:38 | 只看该作者

6楼真的吗

我用mplabv8.0+盗版picc18v9.5不行和搂住情况一样

使用特权

评论回复
9
与时俱进|  楼主 | 2008-4-11 08:26 | 只看该作者

to: 兰天白云

您说的是什么意思?

使用特权

评论回复
10
zhaoyu2005| | 2008-4-11 11:04 | 只看该作者

应该是PICC的问题

我试了一下这几句在MPLAB7.5+PICC8.05,片子选PIC16F77同样不行,和LZ一样的问题,同时改了一下:
x=1.2;    
t=t+1.3;运行到这一行
x=2.1;
竟然t为负值

使用特权

评论回复
11
zhaoyu2005| | 2008-4-11 11:20 | 只看该作者

查了一下,不是软件的问题

是显示格式不同造成,改一下显示格式应该就好了,就是在watch添加变量名后,选中点右键,点Properties,格式(Format)选MCHP Float就差不多了(还是和IEEE格式不一样)。不过拿鼠标看还是不行,不知他们怎么想得,麻烦

使用特权

评论回复
12
zhaoyu2005| | 2008-4-11 11:51 | 只看该作者

不过试着改了好几个选项

也没有达到标准化显示,烦了,不想试了,等有心情或者使用到再努力吧

使用特权

评论回复
13
与时俱进|  楼主 | 2008-4-11 11:58 | 只看该作者

谢谢大家,zhaoyu2005能不能?

详细说说每个相关地方的设置?
我的好像设置了也没有用,包括数据格式,高低字节顺序等等。

使用特权

评论回复
14
兰天白云| | 2008-4-11 20:09 | 只看该作者

本人的程序中还未出现float的变量

使用特权

评论回复
15
与时俱进|  楼主 | 2008-4-14 10:27 | 只看该作者

请教兰天白云:

带小数点的运算也不用float的变量吗?一定有什么高招!可否赐教?

使用特权

评论回复
16
与时俱进|  楼主 | 2008-4-14 10:30 | 只看该作者

问题找到了

变量还是IEEE格式,但是把数据宽度改成24位就正常了。
拿鼠标看还是不行。

使用特权

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

本版积分规则

75

主题

1290

帖子

2

粉丝