snailmoving 发表于 2014-9-1 16:58:07

请教一个关于中断返回后的问题

本帖最后由 snailmoving 于 2014-9-1 17:02 编辑

正常情况下,进入中断,中断执行完成以后,会回到中断前的地方继续执行,现在我想从程序开头重新执行。不要用复位,不要用GOTO。能有什么别的方法吗?
网上看到一段程序((void (code *) (void)) 0x0000) ();        这个程序是可以返回到开头的,但是这个程序执行了以后,下次就不会再进入中断了。
求大神指点迷津!

tohell 发表于 2014-9-1 17:48:02

为什么不用复位,看门狗复位很好用啊

番茄酱 发表于 2014-9-1 18:18:26

中断里,加个执行条件判断第几次执行到这一步,可否?

yklstudent 发表于 2014-9-1 18:58:53

是不是全局中断允许位关闭没有开启了

rain73 发表于 2014-9-1 21:29:38

很明显,你用这样的指令表示程序一直处于中断中,其它中断等待你释放中断,怎么执行?
这样的奇葩程序还是少用。

lcofjp 发表于 2014-9-1 21:41:38

从0执行不是真正的复位,复位是硬件的,所有寄存器都会设置成初始值,保证CPU处于已知的状态。

kebaojun305 发表于 2014-9-1 22:03:07

你写的那个 就是程序跳转到 复位地址和goto功能 原理一样   关键在于寄存器没有复位。如果想寄存器也复位,那只能用看门口或者你自己初始化 所有的寄存器。

snailmoving 发表于 2014-9-2 08:25:04

tohell 发表于 2014-9-1 17:48
为什么不用复位,看门狗复位很好用啊

我是怕频繁的复位,单片机会不会有问题?

tohell 发表于 2014-9-2 08:36:39

snailmoving 发表于 2014-9-2 08:25
我是怕频繁的复位,单片机会不会有问题?

想太多了…………

snailmoving 发表于 2014-9-2 08:42:52

tohell 发表于 2014-9-2 08:36
想太多了…………

频繁到什么程度,汽车一个刹车放掉以后就会复位,所以你说会有多频繁

steaven2000 发表于 2014-9-2 09:03:02

snailmoving 发表于 2014-9-2 08:42
频繁到什么程度,汽车一个刹车放掉以后就会复位,所以你说会有多频繁

你的程序设计得好,就算1秒复位一次又怎样?你的程序设计不好,1年复位一次都会死机!

你天天吃饭很开心,有的人吃饭还被噎死了这怎么说?

搞单片机软件,要注意所有的细节和原理,不能凭空想当然。

snailmoving 发表于 2014-9-2 09:06:18

steaven2000 发表于 2014-9-2 09:03
你的程序设计得好,就算1秒复位一次又怎样?你的程序设计不好,1年复位一次都会死机!

你天天吃饭很开心 ...

复位肯定是不会死机的,但是现在就怕单片机硬件受不了,STC的

lkm_unication 发表于 2014-9-2 09:20:06

为什么一定要复位?你可以把需求罗列出来,让大伙帮忙出点主意嘛!

别有洞天下 发表于 2014-9-2 09:26:45

信息量有点大,不明觉厉

rain73 发表于 2014-9-2 10:12:10

楼主的程序设计有问题,把一个动作处理让单片机复位?频繁复位对单片机来说基本没问题,奇葩的是人为地让它复位。
页: [1]
查看完整版本: 请教一个关于中断返回后的问题