更改中断和PIC外部中断有什么区别

电器工程 微控制器 图片 微芯片 中断
2022-01-11 10:37:12

PIC上的IOC和EXT中断在功能上有什么区别?我目前使用的是 PIC12F1822,除了额外的检查层之外,您必须与 IOC(即哪个引脚导致中断)有关,两者是相同的。

如果有的话,有什么实际区别?您什么时候使用其中一个或另一个?

4个回答

看看这个文件,其中指出: -

Interrupt-on-change
此功能类似于外部中断功能,不同之处在于端口更改中断将由启用它的任何引脚上的任何更改(不仅仅是一种类型的转换)触发。这使它更灵活(在更多引脚上可用),但也更难以正确处理。

这样做可能是为了通过减少中断向量表中的条目来简化芯片的中断架构。更改中断可以在端口寄存器更改时设置为触发,并且对于您不想为每个引脚编写中断服务程序(ISR)的键盘矩阵之类的东西很有用。你可以只写一个可以检查整个端口的值,这可能是你真正感兴趣的,具体取决于应用程序。

中断开启变化和外部中断引脚的三个最大区别:

  1. 外部中断引脚允许软件指定中断是由上升沿触发还是由下降沿触发;例如,如果某个引脚为低电平并且仅对下降沿感兴趣,则在引脚上升并随后下降之前不会触发中断。使用更改时中断,必须在这两个事件上唤醒。
  2. 外部中断引脚具有单独的锁存状态位。即使输入脉冲在软件有机会响应之前来来去去,软件仍然可以发现它发生并做出适当的反应。
  3. 恰好在输入变化时读取启用了引脚变化中断的 I/O 端口可能会导致引脚变化中断不触发。相比之下,读取连接到外部中断引脚的 I/O 端口对中断没有影响。

PIC 的外部中断比通用引脚变化中断更加通用和可靠。我建议在实际情况下使用前者。

基本上,外部中断将在特定(上升或下降,用户定义)边沿触发,而变化中断将在任何边沿(上升和下降)触发。