12. 外部割込み

 外部割込みは、INT0、INT1およびPCINT23..0のいずれかの端子により発生します。外部割込みが有効になっていれば、INT0、INT1、PCINT23..0端子が出力として設定されている場合であっても、割込みが発生することに注意してください。この機能によって、ソフトウェア割込みを発生させることができます。ピン・チェンジ割込みPCI2は、有効であれば、PCINT23..16の端子のいずれかの値の反転によって発生します。ピン・チェンジ割込みPCI1は、有効であれば、PCINT14..8の端子のいずれかの値の反転により発生します。ピン・チェンジ割込みPCI0は、有効であれば、PCINT7..0の端子のいずれかの値の反転により発生します。PCMSK2、PCMSK1、PCMSK0レジスタによって、どの端子がピン・チェンジ割込みの要因となるかを制御します。PCINT23..0端子によるピン・チェンジ割込みは、非同期動作により検出され、発生します。このことは、これらの割込みにより、アイドル・モード以外のスリープ・モードからウェークアップするために使用可能であることを意味します。

 INT0およびINT1割込みは、エッジの立ち下がり、立ち上がり、あるいはLowレベル状態により発生させることができます。外部割込みコントロール・レジスタA(EICRA)の説明にあるとおりに設定することで可能です。INT0あるいはINT1割込みが有効になっていて、電圧レベルによって割込みを発生するように設定されている場合、その端子がLow状態に保持されている期間にわたって割込みが発生します。INT0あるいはINT1のエッジの立ち下がり、立ち上がり検出には、「クロック・システムとその配分」(p.26)に説明されているとおり、I/Oクロックが動作している必要があります。INT0あるいはINT1のLowレベル割込みは、非同期動作により検出されます。このことは、これらの割込みにより、アイドル・モード以外のスリープ・モードからウェークアップするために使用可能であることを意味します。I/Oクロックは、アイドル・モード以外のスリープ・モードでは停止しています。

 パワーダウン・モードからのウェークアップにレベル検出による割込みを使用する場合、MCUがウェークアップ動作を行い、レベル検出による割込みを発生させるために十分長い時間にわたり検出に必要な電圧レベルが保持されていなければなりません。必要な電圧レベルがスタート・アップ時間が終了する前になくなってしまった場合、MCUはウェークアップ動作は行いますが、割込みは発生しません。「システム・クロックとクロックのオプション」(p.26)に説明されているように、スタート・アップ時間は、SUTおよびCKSELヒューズ・ビットにより設定されます。

12.1 ピン・チェンジ割込みのタイミング

 Figure 12-1に、ピン・チェンジ割込みのタイミングの例が示されています。

Figure 12-1. ピン・チェンジ割込みのタイミング

12.2 レジスタ詳細

12.2.1 EICRA – 外部割込みコントロール・レジスタA

 外部割込みコントロール・レジスタAには、割込み検出のための制御ビットがあります。

ビット 7 6 5 4 3 2 1 0
(0x69) - - - - ISC11 ISC10 ISC01 ISC00 EICRA
Read/Write R R R R R/W R/W R/W R/W
初期値 0 0 0 0 0 0 0 0

12.2.2 EIMSK – 外部割込みマスク・レジスタ

ビット 7 6 5 4 3 2 1 0
0x1D (0x3D) - - - - - INT1 INT0 EIMSK EIMSK
Read/Write R R R R R R R/W R/W
初期値 0 0 0 0 0 0 0 0

12.2.3 EIFR – 外部割込みフラグ・レジスタ

ビット 7 6 5 4 3 2 1 0
0x1C (0x3C) - - - - - - INTF1 INTF0 EIFR
Read/Write R R R R R R R/W R/W
初期値 0 0 0 0 0 0 0 0

12.2.4 PCICR – ピン・チェンジ割込みコントロール・レジスタ

ビット 7 6 5 4 3 2 1 0
0x1C (0x3C) - - - - - PCIE2 PCIE1 PCIE0 PCICR
Read/Write R R R R R R/W R/W R/W
初期値 0 0 0 0 0 0 0 0

12.2.5 PCIFR – ピン・チェンジ割込みフラグ・レジスタ

ビット 7 6 5 4 3 2 1 0
0x1B (0x3B) - - - - - PCIF2 PCIF1 PCIF0 PCIFR
Read/Write R R R R R R/W R/W R/W
初期値 0 0 0 0 0 0 0 0

12.2.6 PCMSK2 – ピン・チェンジ・マスク・レジスタ2

ビット 7 6 5 4 3 2 1 0
(0x6D) PCINT23 PCINT22 PCINT21 PCINT20 PCINT19 PCINT18 PCINT17 PCINT16 PCMSK2
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
初期値 0 0 0 0 0 0 0 0

12.2.7 PCMSK1 – ピン・チェンジ・マスク・レジスタ1

ビット 7 6 5 4 3 2 1 0
(0x6C) - PCINT14 PCINT13 PCINT12 PCINT11 PCINT10 PCINT9 PCINT8 PCMSK1
Read/Write R R/W R/W R/W R/W R/W R/W R/W
初期値 0 0 0 0 0 0 0 0

12.2.8 PCMSK0 – ピン・チェンジ・マスク・レジスタ0

ビット 7 6 5 4 3 2 1 0
(0x6B) PCINT7 PCINT6 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 PCMSK0
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
初期値 0 0 0 0 0 0 0 0

目次に戻る