PIC中断

[复制链接]
6129|7
 楼主| NBHF 发表于 2023-11-30 21:45 | 显示全部楼层 |阅读模式
我想问一下,优先级相同的两个中断能相互打断吗?如果有,是否会出现两中中断一直相互打断,最后使得中断堆栈溢出?
储小勇_526 发表于 2023-12-1 08:45 | 显示全部楼层
优先级都相同了,为啥会打架呢?

评论

就是一个中断执行的时候不会被另一个中断打断吗?在中断服务程序里面打断。  发表于 2023-12-1 09:12
储小勇_526 发表于 2023-12-1 11:28 | 显示全部楼层
储小勇_526 发表于 2023-12-1 08:45
优先级都相同了,为啥会打架呢?

我的理解是这样子的,看看还有没有大神有其他回复
 楼主| NBHF 发表于 2023-12-1 15:29 | 显示全部楼层
储小勇_526 发表于 2023-12-1 11:28
我的理解是这样子的,看看还有没有大神有其他回复

不会被打断,我用的这个片子没有设置中断优先级的寄存器,刚查了数据手册,中断运行的过程中会先关掉总中断使能,退出前会打开,所以运行中断服务程序过程中不会被其他打断。
储小勇_526 发表于 2023-12-1 15:34 | 显示全部楼层
NBHF 发表于 2023-12-1 15:29
不会被打断,我用的这个片子没有设置中断优先级的寄存器,刚查了数据手册,中断运行的过程中会先关掉总中 ...

这个方法虽然笨了点,不过蛮好的,不懂中断优先级的都能搞定
DanPianJiFangAn 发表于 2023-12-1 15:43 | 显示全部楼层
这种没有硬件优先级的,一个中断入口的,自己在软件里,让优先级高的排前面,低的排后面,同时发生就按软件来了.

中断里可以
while(T0IF || T1IF)     // 此判断可不要
{
    if(T0IF)
    {
        ;T0中断应用程序
        T0IF = 0;
    }
    if(T1IF)
    {
        ;T1中断应用程序
        T1IF = 0;
    }
}
无善无恶心之体 发表于 2023-12-1 15:54 | 显示全部楼层
低端的PIC芯片中断没有优先级,高端的有; 同一优先级级别的中断当然不会让它们互相拆台,同归于尽,设计者没那么傻。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部