打印

浮点运算

[复制链接]
1545|32
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangzsa|  楼主 | 2022-11-11 21:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
程序里有很多浮点运算 程序没问题

还有我把浮点运算放在中断里了,这有什么不妥吗??

但编译下来 keil 总是报错

使用特权

评论回复
沙发
zwll| | 2022-11-11 21:51 | 只看该作者
是内存不够用吗

使用特权

评论回复
板凳
wangzsa|  楼主 | 2022-11-11 21:53 | 只看该作者

使用特权

评论回复
地板
renyaq| | 2022-11-11 21:55 | 只看该作者
应该是函数不重入引起的

使用特权

评论回复
5
dengdc| | 2022-11-11 21:57 | 只看该作者
再建立一个函数,功能与原函数一样,在中断中调用即可

使用特权

评论回复
6
liliang9554| | 2022-11-11 21:59 | 只看该作者
LS 正解
或者在调用这个函数前禁止下中断执行完后再开放中断

使用特权

评论回复
7
zhenykun| | 2022-11-11 22:04 | 只看该作者
中断ISR采用其余寄存器组,那么在该嵌套调用中不至于破坏原先处理到一半的状态,此处需要注意关闭寄存器绝对寻址

使用特权

评论回复
8
pengf| | 2022-11-11 22:06 | 只看该作者
用reentrant,这样会从0xFF(默认)开始倒向模拟一个堆栈,用以处理可重入问题

使用特权

评论回复
9
wangzsa|  楼主 | 2022-11-11 22:09 | 只看该作者
听得云里雾去啊  不是很明白

使用特权

评论回复
10
dingy| | 2022-11-11 22:11 | 只看该作者
就是一个函数同时被调用,C51默认是不允许的。一定这么做的话,需要在函数前加reentrant关键词

使用特权

评论回复
11
dingy| | 2022-11-11 22:18 | 只看该作者
是不是**的不完全啊,你的代码量已经超出了本版本的限制

使用特权

评论回复
12
zwll| | 2022-11-11 22:21 | 只看该作者
中断里面不要放太多代码

使用特权

评论回复
13
xxrs| | 2022-11-11 22:26 | 只看该作者
只要不影响你的运行效率就可以

使用特权

评论回复
14
wangzsa|  楼主 | 2022-11-11 22:32 | 只看该作者
好的,我明天去单位试一下,多谢各位大侠了哈

使用特权

评论回复
15
tpgf| | 2022-12-9 09:35 | 只看该作者
中断里边做浮点运算 这个处理得很不对

使用特权

评论回复
16
木木guainv| | 2022-12-9 10:42 | 只看该作者
希望楼主给一个报错信息 是数据类型不对还是怎么回事 但是不会因为在中断里边处理浮点数就会报错的

使用特权

评论回复
17
xiaoqizi| | 2022-12-9 10:57 | 只看该作者
中断函数中不要处理如此复杂的计算

使用特权

评论回复
18
wowu| | 2022-12-9 11:07 | 只看该作者
一般中断里只设标志位,其他事留到主程序中处理

使用特权

评论回复
19
wakayi| | 2022-12-9 11:19 | 只看该作者
考虑一下资源冲突,对于要用道的资源同时主程序也在用的要入栈保存

使用特权

评论回复
20
renzheshengui| | 2022-12-9 11:34 | 只看该作者
通常情况下,为了整体的运行性能以及响应速度,中断处理程序执行时间越短越好,因此,一般把较大的运算工作量放在任务函数中处理,中断程序仅设置标志

使用特权

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

本版积分规则

914

主题

9040

帖子

5

粉丝