打印

在MPLAB中用float定义变量,单步显示数据不对???

[复制链接]
4062|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本人刚开始学PIC的编程,用的是PIC16F946,我用的是MPLAB 8.60,PICC 用V9.80版本。
现在发现一个很奇怪的问题,我用float定义了2个变量,然后denbug运行,到断点处,查看上面2个变量的值,但是不对?不知道 为什么?
源程序和仿真结果图片如下如下:
void main(void)
{   
    sys_ini();
    BEEP_Num(1);
    Delay(1000);

    float low_data;//量程下限
    float top_data;//量程上限
   
    low_data = 0;
    top_data = 0;
   
    low_data = 1.0;
    top_data = 2.0;
    NOP();
   
    while(1)
    {
        if(low_data == 1.0)
        {
            BEEP_Num(1);
            Delay(1000);
        }
        if(top_data == 2.0)
        {
            BEEP_Num(2);
            Delay(1000);
        }
        
    }   
   
}

clip_image002.jpg (17.67 KB )

clip_image002.jpg

2.JPG (23.51 KB )

2.JPG
沙发
lw30402048|  楼主 | 2011-5-29 16:22 | 只看该作者
我在网上看到  说有些PIC 不支持float 浮点型的运算 有这么回事吗?

使用特权

评论回复
板凳
lw30402048|  楼主 | 2011-5-29 16:22 | 只看该作者
如果有不支持float 浮点型的运算的话,在哪里看呢?忘高手指点下哈

使用特权

评论回复
地板
lw30402048|  楼主 | 2011-5-29 16:24 | 只看该作者
上面红色 点是断点处

使用特权

评论回复
5
Mary_luo| | 2011-5-30 08:52 | 只看该作者
建议楼主用最新型号PIC16F194X系列

使用特权

评论回复
6
lw30402048|  楼主 | 2011-5-30 13:30 | 只看该作者
建议楼主用最新型号PIC16F194X系列
Mary_luo 发表于 2011-5-30 08:52
19的贵啊

使用特权

评论回复
7
兰天白云| | 2011-5-30 19:38 | 只看该作者
很抱歉,本人未遇到这种情况

另2楼的说法不靠谱,浮点运算与单片机无关

使用特权

评论回复
8
lw30402048|  楼主 | 2011-5-30 20:57 | 只看该作者
7# 兰天白云 我是硬件仿真看变量的结果 就出现上面的值 很奇怪呢?

使用特权

评论回复
9
yewuyi| | 2011-5-30 23:12 | 只看该作者
这个代码中的两个局部变量很有可能会被编译器优化掉。

使用特权

评论回复
10
lw30402048|  楼主 | 2011-5-31 10:03 | 只看该作者
这个代码中的两个局部变量很有可能会被编译器优化掉。
yewuyi 发表于 2011-5-30 23:12
应该不会,如果去掉下面的if判断语句是会被优化,加上去应该不会吧,那请问yewuyi 怎么才能查看float的变量呢?

使用特权

评论回复
11
yewuyi| | 2011-5-31 22:44 | 只看该作者
从程序结构上看,
BEEP_Num(1);
Delay(1000);
BEEP_Num(2);
Delay(1000);
这四句铁定都会执行,因为那两个变量的值完全确定了。

使用特权

评论回复
12
dwdsp| | 2012-8-30 19:06 | 只看该作者
只到现在,我也没有好注意 把24位浮点数转为32位浮点数

使用特权

评论回复
13
930678704| | 2014-5-19 19:43 | 只看该作者
我也出现了这种情况,不知道怎么回事。楼主解决了吗,求指点啊

1.jpg (35.58 KB )

float出错

float出错

使用特权

评论回复
14
zhimagod| | 2014-5-20 08:56 | 只看该作者
定义时加上“volatile”再试试

使用特权

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

本版积分规则

16

主题

140

帖子

1

粉丝