【问题标题】:Writing to OC8R/RS causes INT4 to unexpectedly trigger写入 OC8R/RS 导致 INT4 意外触发
【发布时间】:2012-10-11 23:20:30
【问题描述】:

标题几乎是不言自明的。当我写入输出比较寄存器(OC8RS 或 OC8R)时,会触发外部中断 INT4 引脚上的中断。我正在使用 Timer3 和 OC8 模块进行 PWM。 INT4 引脚连接到一个物理开关,按下时会触发中断。但是,当我为我的 PWM 功能更新 OC8RS 寄存器时,从 INT4 触发了一个中断......这是没有意义的(再次,因为这个引脚连接到一个物理开关 - 与 PWM 无关)。

我猜我没有正确初始化、设置或清除某些东西,但我没有想法。其他人有吗?谢谢!

我使用的是 PIC24HJ256GP610A 处理器,以及最新的 MPLAB v8 和 C30 以及 ICD3。

【问题讨论】:

  • 处理器的管脚图中,OC8和INT4是映射到同一个管脚的吗?在没有外设引脚选择的版本中,功能可以在引脚上复用。
  • 很好的建议,但我已经检查过了。两者在不同的引脚上。请参阅下面我找到的“解决方案”...

标签: interrupt pic microchip pwm


【解决方案1】:

我找到了解决方案。我没有将 INT4 的三态位设置为输入(即 TRISA 的第 15 位 = 1),而是将其设置为输出(TRISAbit15=0)。现在,这没有任何意义,因为正如我已经说过的,我使用机械开关在按下时向 INT4 引脚发送脉冲……即,向 MCU 发送输入信号。我将 INT4 引脚连接到 10K 上拉电阻,以使开关工作。

因此,将引脚/三态位设置为输出不再导致触发 INT4 中断。信号看起来比它应该的更嘈杂,好像它正在与另一个信号“战斗”,但它现在工作正常。仍然对当它接收输入时如何将引脚设置为输出感到困惑......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    相关资源
    最近更新 更多