请选择 进入手机版 | 继续访问电脑版
论坛
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 903|回复: 1

esp32中断中的浮点赋值

[复制链接]

1

主题

2

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2018-1-11 11:04:31 | 显示全部楼层 |阅读模式
最近在做esp32的项目,买的模块是ESP-32S.

项目中需要开一个定时器中断,每10ms产生一次中断,在中断中有一些浮点运算,结果发现一些很奇怪的问题,
make monitor之后程序就挂了。代码如下:

        float                 f_tmp = 0.0;

        void /*IRAM_ATTR*/ timer_group0_isr(void *para)
        {
                int16_t usg16 = 0;

                f_tmp = usg16;//就这里有问题,编译时能通过的,就是跑的时候就挂了
        }

就是将一个int16_t 赋给float,make monitor之后就报下面错误。
      

我开始怀疑是IRAM_ATTR的问题,屏蔽了也是一样。在其他普通函数中这样赋值没有问题,就是在中断中不能。
是不是把浮点放在了不同的地方,不能直接赋值,但是我直接f_tmp = 10.00又是可以的。
请问这里有什么玄机吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

1

主题

2

帖子

28

积分

新手上路

Rank: 1

积分
28
 楼主| 发表于 2018-1-11 11:35:04 | 显示全部楼层
自己顶一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|安信可论坛    

GMT+8, 2018-11-20 06:07 , Processed in 0.015797 second(s), 12 queries , Redis On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表