jdm64 发表于 2024-8-24 18:12:28

单片机运行时自动复位 | 已解决,程序问题

各位大佬请教一个问题,我使用的是8H4K64TL,使用过程中使用少量代码运行正常,只要再增加一些就会自动复位,就是程序跑到循环的时候没一会又从头开始运行,循环当中的代码都没运行完,感觉上是单片机自动复位了。实际的代码都没超过3k,8H4K64TL有64k的空间,找了一下午也没找出什么原因,有没有大佬遇到过这种问题。

还有,看门狗定时器我没有使用,应该不是他的问题吧,或者说需要手动关闭吗。


已解决,是定时器2默认开启了自己没有注意,并且没有写中断服务函数,所以程序跑飞了,研究了一整天,后面发现是这种低级错误,呜呜呜呜

布丁橘长 发表于 2024-8-24 20:38:29

本帖最后由 布丁橘长 于 2024-8-24 20:39 编辑

看到过一个帖子,说32G12K128的edata 超过3900会导致一些问题




不知到楼主的8H4K64UTL的edata使用情况如何




晓飛飛 发表于 2024-8-24 21:13:31

本帖最后由 晓飛飛 于 2024-8-24 21:14 编辑

1,代码中如果有野指针,或者强制跳转等非结构代码,容易出现跑飞复位的情况,
2,看门狗需要主动开启,或者ISP下载时勾选启动,默认是不会启动的,能排除看门狗的问题。

DebugLab 发表于 2024-8-24 21:17:10

布丁橘长 发表于 2024-8-24 20:38
看到过一个帖子,说32G12K128的edata 超过3900会导致一些问题




8051有data(直接访问128)和idata(间接访问256)没有edata

DebugLab 发表于 2024-8-24 21:18:05

我的8H4K64TLCD,5K多没有问题

布丁橘长 发表于 2024-8-24 21:31:04

DebugLab 发表于 2024-8-24 21:17
8051有data(直接访问128)和idata(间接访问256)没有edata

对哦,搞错了,以为和32G一样
那得考虑其他原因了,没有代码和硬件图,只能猜测

soma 发表于 2024-8-24 21:38:47

程序while循环开始之前加入一个uart发送开始,跑几次就知道是不是复位了。

Yim_Hom 发表于 2024-8-24 23:06:45

检查供电、信号接线
检查程序是不是while之前写的有问题

_奶咖君_ 发表于 2024-8-24 23:38:12

盲猜下载的时候勾选了硬件开启看门狗{:4_200:}

jdm64 发表于 2024-8-25 11:56:47

已解决,是定时器2默认开启了自己没有注意,并且没有写中断服务函数,所以程序跑飞了,研究了一整天,后面发现是这种低级错误,呜呜呜呜
页: [1] 2
查看完整版本: 单片机运行时自动复位 | 已解决,程序问题