日々の生活を好き勝手につづったブログ(My blog is written by inoshita.jp)
各種delay関数はループ処理でwaitしているため割込みでは解除されない
delay(int ms)
_delay_us(int us)
割込み禁止:cli()
割り込み許可:sei()
他のさらに優先度の高い割り込みを先に処理したい場合には割り込み処理の中でsei 命令を実行して割り込みを許可できる(多重割込み可能)
単独ピンD2,D3の割り込みであり、割り込みのパターンを指定できる
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
EIMSK | – | – | – | – | – | – | INT1 | INT0 |
EIMSKの下位2bit,ビット=1で有効化
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
EICRA | – | – | – | – | ISC11 | ISC10 | ISC01 | ISC00 |
ISC11,ISC10はINT1のISC01,ISC00はINT0の設定
ISC*1 | ISC*0 | パターン |
0 | 0 | Lレベル |
0 | 1 | 変化 |
1 | 0 | 立ち上がり |
1 | 1 | 立ち下がり |
複数のピン変化をまとめた割込みで3グループに分かれている
物理ピン | 機能ピン名 | ピン名 | PCINT名 | PCIグループ名 |
10 | crystal2 | PB7 | PCINT7 | PCI0 |
9 | crystal1 | PB6 | PCINT6 | |
19 | D13 | PB5 | PCINT5 | |
18 | D12 | PB4 | PCINT4 | |
17 | D11 | PB3 | PCINT3 | |
16 | D10 | PB2 | PCINT2 | |
15 | D9 | PB1 | PCINT1 | |
14 | D8 | PB0 | PCINT0 | |
1 | reset | PC6 | PCINT14 | PCI1 |
28 | A5 | PC5 | PCINT13 | |
27 | A4 | PC4 | PCINT12 | |
26 | A3 | PC3 | PCINT11 | |
25 | A2 | PC2 | PCINT10 | |
24 | A1 | PC1 | PCINT9 | |
23 | A0 | PC0 | PCINT8 | |
13 | D7 | PD7 | PCINT23 | PCI2 |
12 | D6 | PD6 | PCINT22 | |
11 | D5 | PD5 | PCINT21 | |
6 | D4 | PD4 | PCINT20 | |
5 | D3 | PD3 | PCINT19 | |
4 | D2 | PD2 | PCINT18 | |
3 | D1(TX) | PD1 | PCINT17 | |
2 | D0(RX) | PD0 | PCINT16 |
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
PCICR | – | – | – | – | – | PCIE2 | PCIE1 | PCIE0 |
PCIE2,PCIE1,PCIE0がPCI2,PCI1,PCI0に対応しビット=1で有効化
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
PCMSK2 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 |
PCMSK1 | – | 14 | 13 | 12 | 11 | 10 | 9 | 8 |
PCMSK0 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
(注)PCINT[0-23]
ピン名で表すと
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
PCMSK2 | PD7 | PD6 | PD5 | PD4 | PD3 | PD2 | PD1 | PD0 |
PCMSK1 | – | PC6 | PC5 | PC4 | PC3 | PC2 | PC1 | PC0 |
PCMSK0 | PB7 | PB6 | PB5 | PB4 | PB3 | PB2 | PB1 | PB0 |
No. | Symbol | Name | Remarks |
---|---|---|---|
0 | - | リセット | 起動アドレス、または初期化ルーチン |
1 | INT0_vect | 外部割り込みピンINT0 | 1ピンのみなので高速なピン状態変化通知 |
2 | INT1_vect | 外部割り込みピンINT1 | 1ピンのみなので高速なピン状態変化通知 |
3 | PCINT0_vect | 汎用ピン変化0 | 最大8ピンまで集約される |
4 | PCINT1_vect | 汎用ピン変化1 | 最大8ピンまで集約される |
5 | PCINT2_vect | 汎用ピン変化2 | |
6 | WDT_vect | 番犬タイマ | 異常処理やハングアップの検出の試みに使われます |
7 | TIMER2_COMPA_vect | タイマ2 比較合致 A | PWMでのタイミング取得など |
8 | TIMER2_COMPB_vect | タイマ2 比較合致 B | PWMでのタイミング取得など |
9 | TIMER2_OVF_vect | タイマ2 オーバーフロー | |
10 | TIMER1_CAPT_vect | タイマ1 捕獲イベント | |
11 | TIMER1_COMPA_vect | タイマ1 比較合致 A | |
12 | TIMER1_COMPB_vect | タイマ1 比較合致 B | |
13 | TIMER1_OVF_vect | タイマ1 オーバーフロー | |
14 | TIMER0_COMPA_vect | タイマ0 比較合致 A | |
15 | TIMER0_COMPB_vect | タイマ0 比較合致 B | |
16 | TIMER0_OVF_vect | タイマ0 オーバーフロー | 比較的単純な時間待ちに使われます |
17 | SPI_STC_vect | SPI シリアル転送完了 | |
18 | USART_RX_vect | USART 受信完了 | 受信レジスタにデータが届いた |
19 | USART_UDRE_vect | USART 送信可能 | 送信レジスタが空になった |
20 | USART_TX_vect | USART 送信完了 | 送信シフトレジスタが空になった |
21 | ADC_vect | ADC 変換完了 | |
22 | EE_READY_vect | EEPROM 待機完了 | |
23 | ANALOG_COMP_vect | アナログコンパレータ | |
24 | TWI_vect | TWI 待機完了 | |
25 | SPM_READY_vect | SPM 待機完了 |