51单片机中断嵌套的问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 20:28:30
用一个单片机的两个时钟T0和T1,用这两个时钟的定时中断编写了一段中断嵌套程序。
T1先中断,在中断期间T0又发生中断(这应该没问题吧,T0中断的优先级是大于T1的),返回中断的时候问题来了,首先T0返回中断,那就会返回到“LJMP $(T0等待中断)”这条无限循环上来,程序就锁死了,有什么办法可以解决么?
感谢kuxuanxinzai的回答
如果说T0的返回中断会返回到T1,那么T0的中断如何返回?我编写的程序需要完成的功能是T0和T1两个中断嵌套并循环,所以T0返回中断的同时也要T1开始计时并等待中断。
关于你的第二点,如果不用LJMP $,RETI命令返回后会返回到哪里呢?

如果说T0的返回中断会返回到T1,那么T0的中断如何返回?

用:RETI 返回,,,应返回到中断发生的地方,执行下一步

如果不用LJMP $,RETI命令返回后会返回到哪里呢?

也可以这样:

WAIT_INT: NOP
NOP ;等待中断
AJMP WAIT_INT

1.T0返回中断,会返回到T1(TO中断前如果T1没执行完的话)!
2.如果你的程序最后一行是LJMP $的话,就算返回到这里也没有问题,中断只要开启了照常可以相应!JLMP $的意义通常就是等待中断的产生!如果你不想中断后一直等待,那就不用这条指令不就行了!

记得加分!