
假设中断A是优弯消先级高的中断,中断B是优先级低的中断
如果在正常执行的过程中,发生中断A,那么,中断A执行完成后,会返回正常程序
如果在正常执行过程中,发生中断B,又在中断B处理过程中发生中断A,那么,中断A执行完成后,一定要返回的是中断B,这是由硬件决定的,不是软件决定仿闹拦的,所以,软件没有任何指令可以让中断A执行完成后直接跳过还没有执行完的中断B而直接回到主程序,因为这备胡是硬件决定的,软件做不到,即便你在高级中断A中关闭了中断B,但是因为你原来的中断B还没有执行完,所以,仍然要把没执行完的部分执行下去,才能返回到正常程序.
对于ARM系列的可以,对于51来说,是不行的,因为51软件指令不允许修改PC寄存器的值
当外部中断0按下后,cw0=1这时如果按键再一次按下去之清铅则前来了脉冲(外部中断1)那么将cw0=0
你说的外部中断1不能触发是不正确的。因为外部中断1不触发的话意味着cw0为高答棚电平。 但实际仿真不是这样的
你把你Q告诉我 激孝我们一起探讨
51单片机总共支持5个中断源,分别为外部中断0,定时器0,外部中断1,定时器,串行中断
这5个中断源都可以独立申请中断
当需要同时进行两个中断时,
即可自动通过中断嵌套的方式来进行
比如说,当需要用外部中断0来启动和停止定时器计数
由于外部中断0的优先级比定时器0的优先级高
所以当定时器正在计数时
若有外部中断申请
则会中断正在运行的定时器罩族中断函数,
响应外部中断0的中码闷棚断请求
这一过程即为中断嵌套。
中断嵌套只需要设定中断优先级即可
是自动完成的。
只要有对应的中断服务函数,即可迟则自动完成中断嵌套的过程
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)