いくつかのプロジェクトでPIC16F877
(データシート)を使用しました。単一の外部ピン変更割り込みの場合、PORTB0
割り込みを使用できます。しかし、今度は1つの回路で8つの独立した外部ピン変更割り込みをサポートする必要があります。
データシートには、に15の割り込みがあるとありますがPIC16F877
、タイマーのオーバーフロー割り込みなどを含めてカウントされていると思います。この場合は役に立ちません。
これはデータシートがINTCON
レジスターについて述べていることです。
bit0を使用して4つの独立した割り込みを持つことはできますRBIF
か?それはの変化を表していPB7:PB4
ます。どのピンが変更されたかをどのように識別できますか、それは割り込みルーチンでポート値を読み取ることによってですか?
上記に対して肯定的な回答を得ても、8つの割り込みが必要ですか?もちろん、私はまだINTE
、PORTB0
変更のために使用できます。その後4 + 1 = 5
、しかし、どのような他の約3?(ただし、8つの割り込みイベントはすべて同じタイプ4 + 1 + 3 = 8
なので、醜いように見えますね。)
8ピンを監視すること以外に、マイクロコントローラから期待される他の重いタスクはありません。(他のタスクについては、一連の個別のカウンター変数を維持し、頻繁に約4バイトをPCにシリアルに送信する必要があります)
どんな提案でも大歓迎です。それがマイクロコントローラーをより適したものに変更することについてであってもです(しかし、ええと。sから離れるように言わないでくださいPIC
)。