代码之家  ›  专栏  ›  技术社区  ›  John Moffitt

如果我禁用了ISR内部的中断会发生什么?

  •  3
  • John Moffitt  · 技术社区  · 14 年前


    PIC18F4580的数据表指出,如果中断在ISR内被禁用,“可能会出现不稳定的行为”。

    3 回复  |  直到 14 年前
        1
  •  1
  •   spade78    14 年前

    免责声明: PIC18F4580 References

    根据PIC18F4580数据表的中断部分:

    任何中断控制寄存器 任何中断都被启用。这样做可能会

    因此,要获得未知行为,需要修改INTCONx寄存器。当您指定要为处理程序中的USART模块切换中断启用时,您不必担心该警告,因为您将更改PIE而不是INTCONx。请注意,饼图寄存器为特定的外围中断保持启用状态。还有一个通用中断使能(GIE)来屏蔽 全部

    因此,正如mjv所说,在处理程序中屏蔽USART外围中断是一件非常合理的事情。

        2
  •  4
  •   mjv    14 年前

    我不知道PIC18F4580的具体情况,但是 一般来说 ,

    再一次 (即,直到中断以某种方式重新启用),但它不应影响ISR的逻辑,使其终止或其他奇怪的事情。

    当然,您需要计划如何/在何处重新启用中断,如果这对程序/逻辑的其余部分很重要的话。

        3
  •  0
  •   user207421    14 年前

    中断停止发生。但为什么要这么做?你有计划什么时候重新启用中断吗?

    如果没什么可做的,就让你的ISR什么也不做。