找回密码
 立即注册
查看: 2407|回复: 10

请教stc浮点运算应注意什么避免死机

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:454
  • 最近打卡:2026-03-25 00:17:59

5

主题

46

回帖

1008

积分

金牌会员

积分
1008
发表于 2024-10-9 13:59:14 | 显示全部楼层 |阅读模式
用stc8g1k08a  17a ,程序需要不断计算浮点, 不过运行几分钟后就死机

请教浮点运算应注意什么避免死机, 死机是什么原因引起,如果加载mdu16会不会更好点

111.png

回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:724
  • 最近打卡:2026-03-18 07:56:47
已绑定手机

97

主题

7244

回帖

1万

积分

超级版主

积分
13791
发表于 2024-10-9 14:56:42 | 显示全部楼层
我使用软件浮点没遇到过死机的情况,可以仿真看看
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:694
  • 最近打卡:2026-03-22 11:00:31
已绑定手机
已实名认证

130

主题

3384

回帖

8819

积分

版主

积分
8819
发表于 2024-10-9 15:28:24 | 显示全部楼层
检查确保没有除0错误
除0可能导致单片机重启或者卡死
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:296
  • 最近打卡:2026-01-08 10:11:26

9

主题

315

回帖

1855

积分

金牌会员

积分
1855
发表于 2024-10-9 15:47:17 | 显示全部楼层
curr有机会是零
82行就会出现除零
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:454
  • 最近打卡:2026-03-25 00:17:59

5

主题

46

回帖

1008

积分

金牌会员

积分
1008
发表于 2024-10-9 21:35:31 | 显示全部楼层
本帖最后由 vip2128 于 2024-10-9 21:37 编辑
Lkck*** 发表于 2024-10-9 15:47
curr有机会是零
82行就会出现除零

搜了很多资料, 这里是浮点运算,即使被除数是0,得出值是NaN,倒没影响程序的运行,打印结果是NaN,加了判断curr==0,跳过运算,直接赋值后面结果为0去打印输出也是一样,1-2分钟后要死机,

最后就把定时器0产生方波的优先级大于定时器1串口,运行几个小时都没问题了,
本来是想串口优先,rx发送命令,tx接收数据不被中断,没想到出问题在这里。。
最先是怀疑stc的浮点运算不给力引起的,还想着引入mdu16去试试
定时器0是翻转脚位去产生方波,比pca语句简单,
主要是开机还能正常运行1-2分钟,后就死机,定时器0和串口在争夺什么出冲突了

回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:646
  • 最近打卡:2026-03-24 08:59:20
已绑定手机

52

主题

2499

回帖

8822

积分

论坛元老

积分
8822
发表于 2024-10-10 09:36:09 | 显示全部楼层
vip2*** 发表于 2024-10-9 21:35
搜了很多资料, 这里是浮点运算,即使被除数是0,得出值是NaN,倒没影响程序的运行,打印结果是NaN,加了 ...

stc8g1k08a/17a芯片没有硬件浮点运算单元,也没有MDU硬件乘除法器。
浮点运算是使用keil编译器的软件数学库程序进行计算的,单片机只是按照编译器产生的机器码一条条指令执行而已。
运行一段时间后死机的话,还是好好查一下你的程序流程,避免循环判断的条件在其他中断里面被修改,导致判断条件无法满足而产生死循环,或者程序产生相互锁死的情况。
例如A程序需要B程序里面的参数设置后才能继续执行,B程序又要等A程序执行完成才能执行,这样程序就会相互锁死。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:334
  • 最近打卡:2026-03-23 13:04:12
已绑定手机

22

主题

128

回帖

1116

积分

金牌会员

STC-镇江-老蔡

积分
1116
发表于 2024-10-10 11:20:44 | 显示全部楼层
平安快乐
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:747
  • 最近打卡:2026-03-25 00:01:08
已绑定手机

19

主题

3340

回帖

6935

积分

论坛元老

积分
6935
发表于 2024-10-10 12:43:20 来自手机 | 显示全部楼层
浮点运算还会造成死机还真不知道。看来要好好学习了
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:792
  • 最近打卡:2026-03-24 20:08:35
已绑定手机

24

主题

144

回帖

2143

积分

金牌会员

积分
2143
发表于 2024-10-10 19:27:03 | 显示全部楼层
数组越界/堆栈问题/错误的指针操作都会导致死机。
频率太高或受到干扰导致芯片内部晶体管异常导通也会死机。
回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:125
  • 最近打卡:2026-02-14 21:59:30
已绑定手机

0

主题

126

回帖

366

积分

中级会员

积分
366
发表于 2024-11-11 23:12:02 来自手机 | 显示全部楼层
还是计算机组成原理的问题吗?
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-3-25 08:47 , Processed in 0.119943 second(s), 107 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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