ATtiny13a(割込み)

割込みピン
1 PB5/RESET 8 VCC
2 PB3 7 PB2
3 PB4 6 PB1/INT0
4 GND 5 PB0

PB1にINT0が割り当てられている

割込みベクタ
No. Symbol 発生元 備考
1 - リセット 電源ON,WDT,BOD等の各種リセット
2 INT0_vect INT0 外部割り込み要求0(PB1)
3 PCINT0_vect 汎用ピン変化0 ピン変化割り込み要求0
4 TIM0_OVF_vect タイマー/カウンタ タイマー/カウンタMAX(オーバーフロー)
5 EE_RDY_vect EEPROM待機完了 EEPROM 操作可
6 ANA_COMP_vect アナログコンパレータ アナログ比較器出力遷移
7 TIM0_COMPA_vect タイマ比較合致 A タイマー/カウンタ比較A一致
8 TIM0_COMPB_vect タイマ比較合致 B タイマー/カウンタ比較B一致
9 WDT_vect 番犬タイマ WDT計時完了
10 ADC_vect ADC 変換完了 A/D変換完了

INT0の場合

ISR(INT0_vect) {}

INT0を使用しないピン割込みの場合

ISR(PCINT0_vect) {}

スリープ復帰用で割り込みを使う場合

//ボタン押下時の割り込み関数
//スリープから復帰するためだけなので何もしない
EMPTY_INTERRUPT(PCINT0_vect);
割込み制御レジスタ

GIMSK: General Interrupt Mask Register

Bit 7 6 5 4 3 2 1 0
GIMSK INT0 PCIE

INT0の場合

GIMSK |= (1<<INT0);                 //INT0割込みを有効
MCUCR |= (1<<ISC01); //HIGH→LOWで割込み

INT0を使用しないでピン割込みの場合

GIMSK |= (1<<PCIE);                 //PCINT割込みを有効
PCMSK = (1<<PCINT2)|(1<<PCINT4);   //例えばPB2,4の割込み許可
INT0の条件指定

MCUCR: MCU Control Register

Bit 7 6 5 4 3 2 1 0
MCUCR PUID SE SM1 SM0 ISC01 ISC00

(意味)

ISC01 ISC00  
0 0 INT0がLOWのとき割り込みが発生
0 1 INT0に任意の変化で割り込みが発生
1 0 INT0にfalling edge(HIGH→LOW)で割り込みが発生
1 1 INT0にrising edge(LOW→HIGH)で割り込みが発生

 

参考:https://stastaka.wordpress.com/2012/03/10/avr%E5%85%A5%E9%96%803-%E3%83%94%E3%83%B3%E5%85%A5%E5%8A%9B%E3%81%A8%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF/