请教一个关于中断返回后的问题
本帖最后由 snailmoving 于 2014-9-1 17:02 编辑正常情况下,进入中断,中断执行完成以后,会回到中断前的地方继续执行,现在我想从程序开头重新执行。不要用复位,不要用GOTO。能有什么别的方法吗?
网上看到一段程序((void (code *) (void)) 0x0000) (); 这个程序是可以返回到开头的,但是这个程序执行了以后,下次就不会再进入中断了。
求大神指点迷津! 为什么不用复位,看门狗复位很好用啊 中断里,加个执行条件判断第几次执行到这一步,可否? 是不是全局中断允许位关闭没有开启了 很明显,你用这样的指令表示程序一直处于中断中,其它中断等待你释放中断,怎么执行?
这样的奇葩程序还是少用。 从0执行不是真正的复位,复位是硬件的,所有寄存器都会设置成初始值,保证CPU处于已知的状态。 你写的那个 就是程序跳转到 复位地址和goto功能 原理一样 关键在于寄存器没有复位。如果想寄存器也复位,那只能用看门口或者你自己初始化 所有的寄存器。 tohell 发表于 2014-9-1 17:48
为什么不用复位,看门狗复位很好用啊
我是怕频繁的复位,单片机会不会有问题? snailmoving 发表于 2014-9-2 08:25
我是怕频繁的复位,单片机会不会有问题?
想太多了………… tohell 发表于 2014-9-2 08:36
想太多了…………
频繁到什么程度,汽车一个刹车放掉以后就会复位,所以你说会有多频繁 snailmoving 发表于 2014-9-2 08:42
频繁到什么程度,汽车一个刹车放掉以后就会复位,所以你说会有多频繁
你的程序设计得好,就算1秒复位一次又怎样?你的程序设计不好,1年复位一次都会死机!
你天天吃饭很开心,有的人吃饭还被噎死了这怎么说?
搞单片机软件,要注意所有的细节和原理,不能凭空想当然。 steaven2000 发表于 2014-9-2 09:03
你的程序设计得好,就算1秒复位一次又怎样?你的程序设计不好,1年复位一次都会死机!
你天天吃饭很开心 ...
复位肯定是不会死机的,但是现在就怕单片机硬件受不了,STC的 为什么一定要复位?你可以把需求罗列出来,让大伙帮忙出点主意嘛! 信息量有点大,不明觉厉
楼主的程序设计有问题,把一个动作处理让单片机复位?频繁复位对单片机来说基本没问题,奇葩的是人为地让它复位。
页:
[1]