変更時の割り込みとPICの外部割り込みの違いは何ですか


11

PICのIOCとEXT割り込みの機能の違いは何ですか?私は現在PIC12F1822を使用しており、IOCで行う必要がある追加のチェック層(つまり、どのピンが割り込みを引き起こしたか)を除いて、2つは同じです。

もしあれば実際上の違いは何ですか?どちらを使用しますか?

回答:


8

この文書を見てください:-

変更時の割り込み
この機能は外部の割り込み機能と似ていますが、ポート変更割り込みは、それが有効になっている任意のピンの変更(1種類の遷移だけではない)によってトリガーされる点が異なります。これにより、柔軟性が増し(より多くのピンで使用できるようになります)、正しく処理することが難しくなります。


5

これは、割り込みベクトルテーブルのエントリを減らすことで、チップの割り込みアーキテクチャを簡素化するために行われる可能性があります。変更時の割り込みは、ポートレジスタが変更されたときに起動するように設定でき、キーパッドマトリックスなど、すべてのピンに割り込みサービスルーチン(ISR)を記述したくない場合に役立ちます。ポート全体の値をチェックできるものを1つだけ書くことができます。これは、アプリケーションによっては、本当に興味があるかもしれません。


5

割り込みオン変更と外部割り込みピンの3つの最大の違い:

  1. 外部割り込みピンにより、ソフトウェアは割り込みを立ち上がりエッジでトリガーするか、立ち下がりエッジでトリガーするかを指定できます。たとえば、ピンが低く、立ち下がりエッジのみに関心がある場合、ピンが立ち上がり、その後立ち下がるまで、割り込みはトリガーされません。変更時割り込みを使用すると、両方のイベントでウェイクアップする必要があります。
  2. 外部割り込みピンには、個別のラッチステータスビットがあります。ソフトウェアがそれに応答する機会がある前に入力パルスが行き来しても、ソフトウェアはそれが起こったことを見つけ、適切に反応することができます。
  3. 入力変更の正確なタイミングでピン変更割り込みが有効になっているI / Oポートを読み取ると、ピン変更割り込みがトリガーされない場合があります。対照的に、外部割り込みピンに接続されたI / Oポートを読み取っても、割り込みには影響しません。

PICの外部割り込みは、汎用のピン変更割り込みよりも用途が広く、信頼性があります。実用的な場合は前者を使用することをお勧めします。


3

基本的に、外部割り込みは特定の(立ち上がりまたは立ち下がり、ユーザー定義の)エッジでトリガーされ、変更時の割り込みは任意のエッジ(立ち上がりと立ち下がりの両方)でトリガーされます。


少なくともPIC12F1822のOPについては、IOCを立ち上がりエッジ、立ち下がりエッジ、またはその両方でトリガーするように構成(ユーザー定義)することもできます(セクション13)。したがって、私にとって唯一の違いは、外部割り込みは2つのエッジ検出のいずれかでトリガーするようにのみ構成できることです。
PetPaulsen 2012年

2

変更時の割り込みは通常、I / Oのハーフバイト用であり、外部割り込みは通常、個々のビット用です。すでに述べたように、IOC ISRで実行する必要があることの1つは、どのビットが変更されたかを把握することです。

IOCは、それを超えて使用するのも少し難しいです。割り込みを有効にする直前にポートを読み取ることが不可欠であり、ISR内のポートを読み取ることがさらに重要です!信号の変化が遅く、ISR内にフラグを設定し、後で、ISRの外で読み取りを行うことができると考えている場合は、もう一度考えてください!ポート(または、正しく呼び出した場合はポートの任意のビット)を読み取ると、割り込みをトリガーするコンパレーターのラッチがリセットされます。ISR内でクリアしないと、ISRを終了したときにすぐに再トリガーされます。これを行うことを覚えている場合、それはすべて良いことですが、ポートに近づいたときに忘れて、ポートを読み取ることができると思う場合、ISRで読み取ることを覚えるまで、少しイライラします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.