关于凌阳单片机中断的问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 08:02:33
刚刚学习这里,对这里的概念有点模糊,想问问前辈们,谢谢~~
比如下面的代码,这个是书上的。
请点击下面的链接:
1.
2.
我的问题就是,首先这个中断的含义是我下面这么理解的吗,就比如说这个程序,当我执行asm("int irq")重新开启中断后,是不是以后当系统产生一个8hz脉冲,也就是说0.125s后,程序会跳转到下面的中断服务程序?
其次就是当程序在终端服务程序里面执行完毕后,执行了一下清除中断标志位后,程序不是应该返回到主函数里面吗?那么这时下一个8hz脉冲来临时,程序还会跳转到改中断服务子程序里面吗?
还有如果我执行完一次中断服务子程序后,最后要是不清除中断标志位,那么会出现一个什么情况?是程序就不返回主函数了?还是程序返回后,再下一个8hz来临后,继续执行中断程序?
最后一个问题就是,当程序在中断服务子程序里面执行时,如果全部代码的执行时间超过了0.125s,也就是说,下一个8hz脉冲又来临了,那么此时会发生什么情况?要是不想这样,怎么解决呢?
问题较多,谢谢啊·
上边的链接:
1.http://hi.baidu.com/bob223946/album/item/8288592ef842b97f4ec22667.html#IMG=8288592ef842b97f4ec22667
2.http://hi.baidu.com/bob223946/album/item/8288592ef842b97f4ec22667.html

执行asm("int irq")重新开启中断后,每隔0.125s,程序会跳转到下面的中断服务程序。

中断服务子程序最后,要是不清除中断标志位,那么会出现:
程序返回后,不等下一个8hz来临,就重新进入中断程序。

当程序在中断服务子程序里面执行时,如果全部代码的执行时间超过了0.125s,也就是说,下一个8hz脉冲又来临了,那么:
新的中断申请,不会得到相应。