0

我正在尝试在 PIC18F46K22 上使用两个比较器模块,其中一个比较器不断产生中断。

这个想法是在模拟输入发生变化时唤醒程序。两个 DAC 提供比模拟输入值略高和略低的参考值。这些连接到比较器的正极引脚。模拟输入是负引脚。

当中断程序中发生来自比较器的中断时,我禁用比较器模块和比较器中断并清除中断标志。

在我的主线中,我将模拟输出值采样到两个参考 DAC,然后重新启用比较器和比较器中断。

问题是每次我这样做时,比较器都会立即产生一个中断,因此程序永远不会休眠。我尝试增加 DAC 的参考值,但仍然出现中断。

有谁知道为什么会发生这种情况?

4

1 回答 1

0

我曾经有同样的问题。如果您正在使用中断标志检查比较器中断,例如:if(pir1.cmif==1){....}中断继续发生。我使用比较器输出状态在中断例程中检查它,例如:if(cmcon0.cout==1){...}else{...}. 这对我很有用(图片是 12f683,顺便说一下寄存器可能不同)。

于 2015-01-20T20:23:13.890 回答