0

PIC18F46K22 で 2 つのコンパレータ モジュールを使用しようとしていますが、コンパレータの 1 つが継続的に割り込みを生成しています。

アイデアは、アナログ入力の変更でプログラムを起動することです。2 つの DAC は、アナログ入力値よりわずかに高く、わずかに低い基準値を提供します。これらは、コンパレータの正のピンに接続されています。アナログ入力はマイナスピンです。

割り込みルーチンでコンパレータからの割り込みが発生した場合、コンパレータ モジュールとコンパレータ割り込みを無効にし、割り込みフラグをクリアします。

メイン ラインでは、アナログ出力値を 2 つのリファレンス DAC にサンプリングし、コンパレータとコンパレータ割り込みを再度有効にします。

問題は、これを行うたびに、コンパレータがすぐに割り込みを生成するため、プログラムがスリープしないことです。DAC からの参照値を増やしてみましたが、それでも割り込みが発生します。

なぜこれが起こるのか誰にも分かりますか?

4

1 に答える 1

0

私は一度同じ問題を抱えていました。次のような割り込みフラグでコンパレータ割り込みをチェックしている場合、割り込みif(pir1.cmif==1){....}が発生し続けます。コンパレータの出力状態を使用して、次のような割り込みルーチンでチェックしましたif(cmcon0.cout==1){...}else{...}。これは私にとって役に立ちました(レジスタが異なる可能性があるため、写真は12f683でした)。

于 2015-01-20T20:23:13.890 に答える