可以根据中断返回的值一层一层地回到需要跳转的地方。比如返回0的话表示函数正常执行结束,返回2的话表示从函数里面跳出来需要跳到其他地方,然后依次类推,稍微修改下程序可以达到问题所需要的效果。
可以的,那得要看你怎么一个设置法了,响应中断之后,你要返回的话,
那么在返回的之前的前一条语句,你得关闭中断,把它置低电平……
之后,你可设置一个标号got loop:
当然,在你执行的那条语句那里设置为
loop:
这样,程序就会跳到loop:之后那条语句去执行……
若有什么疑问,可以看看资料书,我里面都会介绍got 的用法的……
理论上来说,中断完成后,程序指针回到断点,继续往下执行
但如果你要转到指定地点执行的话,我提供个方法,如下
你可以在中断中设置一个全局变量,如果中断后,改变这个全局变量,在程序的关键部位检测这个变量是否改变,如果改变了执行“goto +标签;”的跳转指令,就可以让程序到指定位置
但该方式不能中断立即跳转到指定位置,但是因为单片机的运算速度实在太快了,知道你在关键部位写如个检测程序,如if(k==1)goto L1;//中断改变全局变量k=1,如果改变了k,那跳转到指定地址L1
这样的方式,只要你在程序关键部位设置合理,是完全能满足设计要求的
单片机执行中断后返回指定位置的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:单片机执行中断后返回指定位置