C语言51单片机中断嵌套问题

C语言51单片机中断嵌套问题,第1张

对于这个,要这么看:

假设中断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的中码闷棚断请求

这一过程即为中断嵌套。

中断嵌套只需要设定中断优先级即可

是自动完成的。

只要有对应的中断服务函数,即可迟则自动完成中断嵌套的过程


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8258347.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存