请教:单片机跑飞后,怎样能从开始跑飞前的指令位置执...

2020-02-06 10:03发布

和别人讨论时,遇到一个问题:
看门狗可以解决单片机跑飞的问题,它是让单片机复位来解决的。但有些特殊的场合,操作过程是不允许重新再来一遍的,只能接着原来的操作往下进行,例如,假设一个机床正在切削加工一个东西,此时单片机跑飞了,如果通过看门狗使其复位,程序又会从开始运行,已经加工过的部分可能会被重复加工,所以单片机应该是能记下程序开始跑飞的位置,接着原来的操作进行。但这怎么实现呢,请高手指点。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
28条回答
.titrwh
1楼-- · 2020-02-06 14:26
每完成一个步骤把指令更新到flash里面,重启后先看flash里面的状态
10xjzheng
2楼-- · 2020-02-06 20:04
一般都是可以判断动作到了哪里的,楼主这种是不能判断到
LearningASM
3楼-- · 2020-02-07 00:30
保存在非初始化区域,系统启动的时候判断是上电启动还是看门狗复位。
xunke
4楼-- · 2020-02-07 04:37
随机的吧,
即使记下PC的位置,数据储存器内容也有可能改变了。
onece
5楼-- · 2020-02-07 08:40
 精彩回答 2  元偷偷看……
honami520
6楼-- · 2020-02-07 14:05
跑飞的话,做不到完美效果的。
就算你保存当前指令执行的条数记录。那么,在某一条指令执行的过程中跑飞的话,机器会停下来。但是你记录的是这条指令已经执行完成或者未完成。
你复位后只能有2种选择,就是要么重新执行这条指令,要么接着执行。总是做不到很完美的。

如果是机床切削这种,记录指令条数可能还不错,因为是做减法。重新切削一次,并不会增加或者减少什么;

一周热门 更多>