トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

Getting Started Notes - 割り込み

最終更新時間:2010年09月11日 15時09分23秒

GNU-C compilerによる割り込みのプログラミング

 互換性に関する注意

このページの解説はWinAVR 20100110(avr-libc 1.7.x)向きに書き直しています。それ以前のバージョンとは割り込みルーチンの書き方が異なりますのでご注意ください。このページからのリンクには旧タイプの割り込みルーチンで書かれているものもあります。廃止されたINTERRUPT()は使っていないので互換性で動くとは思いますが、適宜新バージョンに対応した物に差し替えていこうと思います。

 割り込みの目的

外部イベントへの対応

INT0/INT1外部割り込み、UART受信割り込み、アナログコンパレータ割り込み、TWIの一部(アドレス一致割り込み)、タイマ割り込みなどがそれに当たります。

たとえば、何かキーが押されたらある処理をするプログラムを作りたいとします。その場合真っ先に思いつくプログラムは以下のようなものでしょう。

スイッチの状態をチェック
    ↓
スイッチが押されていたら、スイッチ処理ルーチンを呼び出し実行
    ↓
他の仕事をする
    ↓
スイッチ状態チェックに戻る

しかしこれだと、常にスイッチ状態を見張っていなければならないので大変です。また、「他の仕事」が長時間かかるものである場合、複数ある場合、間にもスイッチチェックをいれなくてはならなくなります。

そこで、多くのマイクロコントローラには、「割込機能」が用意されています。たとえば、「外部割り込み機能」を使うと、メインルーチンでは定期的にスイッチのチェックをすることなく、AVRのあるピンにつながれたスイッチが押されると、メインルーチンの処理を中断して、スイッチ入力の処理のために用意した「割込ルーチン」を実行させることができます。割り込みルーチン処理終了後は何事もなく続きのメインルーチン処理が再開されます。

割り込み設定
    ↓
メインルーチン処理
    :
メインルーチン内のある命令実行中、割り込み発生
     ↓
   処理中断→割り込みルーチン開始
                       :
   処理再開←割り込みルーチン終了
     ↓
 続きの処理(中断直後から)
   :

割り込み処理のきっかけにできるものはAVRデバイスによって異なりますが、次項にリストされたようなものがあります。各割り込みの発生は、各種周辺機能の設定レジスタや、STATUSレジスタの決められたbitによって、許可・禁止できます。

自身が行った操作の終了を知らせる

割り込みのもう1つの使い方として、自身が行った操作が終わり、次の処理が可能になったことを知らせるというものもあります。UART送信関連(UART送信完了割り込み、UDR空き割り込み)、SPI、TWI(I2C)、ADC、EEPROM、SPM割り込みなどがそれに該当します。

複数のデータを次々と送受信したい場合に多く使われます。たとえば、UART送信の場合、送信したい最初のバイトデータを送信した後、2番目以降はUDR空き割り込みを使って、送信が可能になり次第順次送らせるように割り込みに任せることができます。詳しくはUART関連ページを参照ください。

スリープモードとの併用

割り込みはスリープモードから通常モードに戻るきっかけに使えますので、しばしばスリープモードを活用するために使われます。たとえば、

  • 通常はパワーダウンモードでスリープに入っておいて、INT0割り込みで起動し、INT0を電源スイッチのように使う
  • UARTデータが到着するまではアイドルモードでスリープに入っておいて消費電力を削減し、データが到着したら処理を始める
  • ADC変換を開始した後アイドルモード(megaシリーズならADCノイズ低減動作)でスリープに入り、変換中のCPU動作を止めてノイズを減らす

などがあります。

割り込みの設定・スリープモードの設定
  ↓
ある機能の作動(終了時割り込みが掛かる)
  ↓
スリープ命令 asm("SLEEP"::);実行。消費電力節減・ノイズ低減などのメリット
  ↓
終了時割り込みでスリープから復帰、結果を処理

Getting Started Notes - ADC にその一例が紹介されています。

 割り込みルーチンの構造

概要

割り込みルーチンは、キーワード "ISR" もしくは "EMPTY_INTERRUPT"を用いて記述します。SIG_NAME は、割り込みの種類を表すキーワードです。

WinAVR 20060125での変更点

  • INTERRUPT()は使えなくなる
  • SIGNAL()の変わりにISR()を使うことが推奨される。しばらくはSIGNAL()も使える
  • 割り込み定義名が"SIG_XXXXX"形式から、"XXXX_vect"形式に変わる。しばらくは旧形式も使える

header

#include <avr/interrupt.h> ←これだけでいい
//#include <avr/singal.h>←WinAVR 20050214以前はこれも必要

ISR()

  • 外部割り込み0 (キーワード SIG_INTERRUPT0)の例
ISR(INT0_vect)
{  /* WinAVR 20060125以降で使えます。今後はこれが推奨される*/
   /* ここに割り込みルーチンのコードを記述します*/
   /* SIGNALでは割り込みは禁止されます。 */
   /* WinAVR1.6.5本家ドキュメントの記述によると割り込み許可/禁止を指定できるらしい。*/
   /*ISR_BLOCK, ISR_NOBLOCK, ISR_NAKED の3パターン */
}
  • 旧バージョン(WinAVR 20050214以前)との互換性のためこの形も残されています
SIGNAL (SIG_INTERRUPT0)
{  /* WinAVR 20050214以前の形式。使えますが今後は推奨されず */
   /* ここに割り込みルーチンのコードを記述します*/
   /* SIGNALでは割り込みは禁止されます。 */
}

EMPTY_INTERRUPT()

EMPTY_INTERRUPT(SIG_NAME);

これは、RETF命令だけの空っぽの割り込みハンドラを作ります。スリープからの起動など、割り込みを起こすだけでいい場合に使います。

INTERRUPT()

WinAVR 20050214以前では使えたINTERRUPTは今後廃止されます。過去の互換性のため解説しておきます。

INTERRUPT (SIG_NAME)
{
   /* ここに割り込みルーチンのコードを記述します*/
   /* INTERRUPTでは割り込みは禁止されません。 */
}

 主な割り込み名

AVRデバイスによって使用できない割り込み、この表にはないが使用可能な割り込みがあります。詳細はavr-libc manualのinterrupt.hの項や、ioxxxx.hを参照してください。

下記にmega8の例を挙げておきます

割り込み名
 動作
新定義名  [旧定義名]
外部割り込み0
 INT0ピンの入力値
 ISR(INT0_vect)  SIGNAL(SIG_INTERRUPT0)
外部割り込み1
 INT1ピンの入力値
 ISR(INT1_vect)  SIGNAL(SIG_INTERRUPT1)
タイマ0 比較出力割り込み
 タイマ0がある値に達する
 ISR(TIM0_COMP_vect)  SIGNAL(SIG_OUTPUT_COMPARE0)
タイマ0 オーバーフロー割り込み
 タイマ0が一回りして0になる
 ISR(TIMER0_OVF_vect)  SIGNAL(SIG_OVERFLOW0)
タイマ1 入力捕獲割り込み
 入力時タイマ1値を記録した
 ISR(TIMER1_CAPT_vect)  SIGNAL(SIG_INPUT_CAPTURE1)
タイマ1 比較出力A割り込み
 タイマ1がある値に達する
 ISR(TIMER1_COMPA_vect)  SIGNAL(SIG_OUTPUT_COMPARE1A)
タイマ1 比較出力B割り込み
 タイマ1がある値に達する
 ISR(TIMER1_COMPB_vect)  SIGNAL(SIG_OUTPUT_COMPARE1B)
タイマ1 オーバーフロー割り込み
 タイマ1が一回りして0になる
 ISR(TIMER1_OVF_vect)  SIGNAL(SIG_OVERFLOW1)
タイマ2 比較出力割り込み
 タイマ2がある値に達する
 ISR(TIMER2_COMP_vect)  SIGNAL(SIG_OUTPUT_COMPARE2)
タイマ2 オーバーフロー割り込み
 タイマ2が一回りして0になる
 ISR(TIMER2_OVF_vect)  SIGNAL(SIG_OVERFLOW2)
SPI割り込み
 SPI転送完了
 ISR(SPI_STC_vect)  SIGNAL(SIG_SPI)
UART 受信完了割り込み
 UARTにデータ到着
 ISR(USART_RXC_vect)  SIGNAL(SIG_UART_RECV)
UART 送信バッファ空き割り込み
 UARTにデータ送信可能
 ISR(USART_UDRE_vect)  SIGNAL(SIG_UART_DATA)
UART 送信完了割り込み
 UART送信データを送りきった
 ISR(USART_TXC_vect)  SIGNAL(SIG_UART_TRANS)
ADC 変換終了割り込み
 ADC変換が終わった
 ISR(ADC_vect)  SIGNAL(SIG_ADC)
EEPROM操作可能割り込み
 EEPROM使用可能
 ISR(EE_RDY_vect)  SIGNAL(SIG_EEPROM)
アナログコンパレータ割り込み
 アナログコンパレータ作動
 ISR(ANA_COMP_vect)  SIGNAL(SIG_COMPARATOR)
TWI割り込み
 TWI操作可能
 ISR(TWI_vect)  SIGNAL(SIG_2WIRE_SERIAL)
SPM操作可能割り込み
 SPM操作可能
 ISR(SPM_RDY_vect)  SIGNAL(SIG_SPM_READY)

 ISR()の属性

割り込みルーチンは次のように記述されます.

ISR(vector , attributes){
      /*any user codes*/
}

ここで,vectorで指定される割り込み名とattributesで指定される属性を適当に設定することにより,目的の割り込みを起動させることが可能です.

ISR_BLOCK

attributesで指定されます.この属性が指定された割り込みでは,割り込み発生時にSTATUSレジスタのビットIをクリアします.

attributesで何も指定されてなかった時,同じ動作となります.

ISR_NOBLOCK

attributesで指定されます.この属性が指定された割り込み中では他の割り込みのネスト,つまり,多重割り込みが許可されます.

スタックオーバーフローや割り込み同士での無限ループに気をつけなさい.

ISR_NAKED

attributesで指定されます.通常の割り込みではpop/push/reti等のコードはコンパイラが生成してくれます.この属性を指定することにより,それらのコードの自動生成を禁止することができます.

自身でpop/push/retiすることによりオーバーヘッドやコード量の肥大化を防ぐ効果が期待できます.

ISR_ALIASOF(target_vector)

attributesで指定されます.2つ以上の割り込みが同じコードを共有している場合,この属性で指定します.

ISR(XXX_vect){
    /*user code here*/
}

ISR(YYY_vect , ISR_ALIASOF(XXX_vect));

上のように記述することでXXX_vectとYYY_vectは同じコードを共有します.

BAIDER_vect

vectorで指定されます.すべての割り込みが同じコードを共有するときに,この割り込み名でルーチンを記述します.

 <interrupt.h>で定義された関数

sei() 割り込み許可

STATUSレジスタのビットIをセットし、割り込みを許可します。個別の割り込みは個々のコントロールレジスタによって許可・禁止されます。

cli() 割り込み禁止

STATUSレジスタのビットIをクリアし、割り込みを禁止します。個々の割り込みの禁止・許可にかかわらず全面禁止となります。

 割り込み処理記述の流れ

以下のような流れになります。

1.割り込み処理は ISR(割り込み名) {....割り込み処理....} で記述
 
2.main()で使用したい割り込み処理を許可するレジスタ上のビットをセットする。
  設定レジスタ=_BV(設定ビット名);
  複数あれば | でつなぐ
  設定レジスタ=_BV(設定ビット名1)|_BV(設定ビット名2);
           
        /*例 PORTB=_BV(PB1)|_BV(PB2)  */
 
3.割り込み準備ができたら、sei();で割り込み処理を解禁する
/*基本的なパターン*/
#include <avr/io.h>
#include <avr/interrupt.h>
(他に必要なヘッダファイル)

ISR(割り込み名)
{
   //割り込み処理・・・・
}
int main( void )
{
    //初期設定・・・
    //割り込みの初期設定、割り込みを有効にする設定・・・・・
    sei();←忘れずに
    for (;;)
    {
        //メインの処理ルーチン
        //割り込みだけで処理するなら空でもいいが、asm("sleep"::);を置くとベター
    }
}

 割り込み処理の例

ここでは外部割り込みの例を紹介しましたが、他にもたくさんの割り込みがあります。一部は他の章で紹介しています。

//mega8の例です
#include <avr/io.h>
#include <avr/interrupt.h>
ISR(INT0_vect) /* PD2 */
{
    PORTB = 0xFF; /* turn off leds */
}
ISR(INT1_vect) /* PD3 */
{
    PORTB = 0x00; /* turn on leds */
}
int main( void )
{
    /* define PortB as Output (Leds) and PortD as Input (Switches) */
    DDRB = 0xFF;
    DDRD = 0x00;
    PORTD= 0xFF; //ポートDのプルアップ。
    /* INT0とINT1を許可する */
    GICR = (1<<INT0)|(1<<INT1);
    /* INT0,INT1は立ち下がりで割り込み発生するよう設定 */
    MCUCR = (1<<ISC01)|(1<<ISC11);
    sei();
    for (;;);
}

このプログラムはPD2とPD3によりLEDをOFF/ONするものです。割り込み入力INT0 (PD2) と INT1 (PD3)にはそれぞれスイッチが接続されておりスイッチの他端はGNDに接続されています。スイッチが閉じるとLo,スイッチが開いているときにはHiが入力されます。[サンプル-基本]参照。

メインプログラムでは、まずはGICR(AT90SシリーズならGIMSK)のINT0 (bit6)と INT1 (bit7)をセットして割り込み許可し、次にMCUCRで信号がどうなったときに割り込みが掛かるかの設定を行っています。各割り込み毎に以下の2bitを設定します。

ISC00 (bit0) , ISC01 (bit1) ... Interrupt 0
ISC10 (bit2) , ISC11 (bit3) ... Interrupt 1
ISCx1 ISCx0 割り込み発生タイミング
 0  0 信号がLowレベルの時
 0  1 (未使用、予約済み)
 1  0 信号が立ち下がる時
 1  1 信号が立ち上がる時

最後に、sei();で割り込み自体を許可します。個別割り込み許可とグローバル割り込み許可両方そろって初めて割り込みが利用できることに注意してください。このあとは無限ループ for(;;) に入ります。プログラムは自分自身へのRJMP命令を繰り返すだけですが、この間にスイッチ入力があると一度割り込みルーチンへ飛び、スイッチ入力に対応する処理を行います。

 割り込みを使う上での注意点

割り込み禁止

割り込みされては困る部分がある場合は、一時割り込みを禁止することができます。ある式の計算の最中にその式に使われている変数が割り込み側で書き換えられる可能性がある場合、大急ぎで行いたい処理、所要時間が決まっていないと困る処理、下記の非分断処理などが該当します。

必要箇所の処理の直前にcli();を入れて割り込み禁止し、直後にsei();を入れて割り込み許可してください。あまりに長い時間割り込み処理を掛けると割り込み処理の正常動作を損ないますので、cli();とsei();内にあまり時間が掛かりすぎる処理を入れないようにしましょう。

cli();
(割り込み禁止で行うべき処理)
sei();

ところで sei 命令で割り込みが許可されるのは sei の直後でなく、sei 命令の次の命令の実行後になります。クリティカルな処理が続く時に、

cli();
非分断処理一つ目
sei();            // 割り込みが許可される瞬間が無い。
cli();
非分断処理二つ目
sei();

と書きたくなりますが、これでは意図した動作をしてくれません。

cli();
非分断処理一つ目
sei();        
asm("nop" ::);     // この隙間で、ひとつだけ割り込み処理が許可される。
cli();
非分断処理二つ目
sei();

などと書く必要があります。

割り込み禁止状態で使うかもしれない関数での割り込み禁止

関数内でcli();とsei();で処理を囲むようにして割り込み禁止とした場合、困ることがあります。その関数を割り込みルーチンからコールすると、関数内のsei();のおかげで関数をコールすると割り込みが許可されてしまいます。これでは割り込みを禁止すべき場所からこの関数を呼ぶことができず困ってしまいます。そこで、以下のような処理をお勧めします。

uint8_t save_sreg;
save_sreg = SREG;
cli();
(割り込み禁止を要する処理)
SREG = save_sreg;

グローバル割り込み許可ビットはSREGにあるので、このレジスタを退避復帰することによって、もとの割り込み許可状況に戻すことができます。割り込み禁止状態で呼ばれたのなら割り込み禁止のまま終わります。

非分断処理

avrgccでは上位下位のレジスタをペアで16bitレジスタのように扱える機構があります。タイマ1関連やADC関連にそのようなレジスタ定義が使われています。しかし8bitプロセッサであるAVRは実際にはこのレジスタペアを1度には処理できず、2命令以上かけて処理します。そのため、この2命令の間に割り込みが入って、しかもその割り込みがこの16bitレジスタの処理に干渉する処理を含んでいた場合は、とんでもない値を返したり異常な値を書き込んでしまったりする可能性があります。TEMPレジスタを共用しているタイマレジスタの場合は、他のレジスタの読み書きでも問題が起こる可能性があります。Timer1の項も参照ください。

OCR1A = 0x1234;
をメインルーチンで行っているときに、割り込みでnow=TCNT1;が入った
   ↓
OCR1AH←0x12 : 実際にはまだOCR1AHには書き込まれずTEMPレジスタに0x12が入る
    割り込みにて now = TCNT1L;         TEMPレジスタにTCNT1Hが入る
    割り込みにて now = now + TEMP<<8;  先に保存したTCNT1H値
OCR1AL←0x34 : 実際には0x34:TEMPがOCR1AL:OCR1AHに入る。TEMPはTCNT1Hの値!
cli();
OCR1A = ocr1a_value;  //これなら大丈夫
sei();

タイマ関連の変数でなくても、同じ多バイト変数をメインルーチンと割り込みルーチン双方で読み書きする場合、トラブルが起こる可能性があります。さらに、相互に関連がある2つの変数のアクセスについても問題が起こる場合があります(たとえばリングバッファの書き込み・読み出しポイントやバッファ保持データ量など)。その場合も割り込み禁止をかけてください。

主な割り込みの設定

詳細はデータシートや、各機能の説明のページをご覧ください。

 外部割り込み

GICR (AT90SではGIMSK)
bit 名称 機能
7 INT0 INT0割り込み有効
6 INT1 INT1割り込み有効
GICR  = _BV(INT0); //GICR(megaの場合)の割り込み許可ビット(INT0,INT1)をセット
//GIMSK = _BV(INT0); //AT90Sシリーズの場合はGIMSK
MCUCR = _BV(ISC11)|_BV(ISC10)|_BV(ISC01)|_BV(ISC00);
    //MCUCRの下位4bitにあるISC11〜ISC00に、外部割り込みが起こる条件をセット
割り込み条件設定
INT0割り込み条件設定
ISC01 ISC00 割り込み
0 0 INT0ピンがLoの時
0 1 INT0ピンがLo→Hi/Hi→Loの時両方
1 0 INT0ピンがHi→Lo(立ち下がり)
1 1 INT0ピンがLo→Hi(立ち上がり)
INT1割り込み条件設定
ISC11 ISC10 割り込み
0 0 INT1ピンがLoの時
0 1 INT1ピンがLo→Hi/Hi→Loの時両方
1 0 INT1ピンがHi→Lo(立ち下がり)
1 1 INT1ピンがLo→Hi(立ち上がり)

 タイマ関連割り込み

以下を参照ください。

 SPI関連

SPCR = _BV(SPIE)|_BV(SPE)|_BV(MSTR);   //SPI割り込み許可,SPI許可,マスタ選択
SPDR = data;

とすると、マスターとスレーブのSPDRの内容が交換され、交換完了時にSPSRのbit-SPIFがセットされ、SPI割り込みが掛かる。SPI割り込みで得られたデータを読み込み、新しく送るべきデータがあればSPDRに書き込む。

データをスレーブから読み込みたいときはダミーデータをSPDRに書き込む。

 UART割り込み

3つの割り込みがあります。

  • 送信完了割り込み=全データが送信されきったら割り込み
  • UDRレジスタ空き割り込み=送信可能状態になったら割り込み
  • 受信割り込み=データが着信したら割り込み

Getting Started Notes - UART 参照。

 ADC関連

AD変換が終了したら割り込みが掛かります。ノイズ低減動作のため、しばしばスリープと併用して割り込みが使われます。Getting Started Notes - ADC 参照

 EEPROM関連

EEPROMへの書き込みを行った後、書き込みが完了し読み書き可能状態になったときに割り込みを起こすことができます。

 アナログコンパレータ関連

Getting Started Notes - Analog Comparator 参照。

 TWI(I2C)関連

TWI(I2C)参照

転送ステップの節目節目に割り込みが掛かる。このとき、TWSRレジスタに、現在の状況が返されるので、このレジスタの値に応じて必要な動作を行うように振り分けるようにすればよい。データシートの TWIの章の「転送種別」内にわかりやすい図表あり

 SPM関連

SPM命令によるFLASHへの書き込みを行った後、書き込みが完了しFLASHが読み書き可能状態になったときに割り込みを起こすことができます。

 ピン変化割り込み

ATmega169(AVR Butterflyに使われている奴)など一部のmegaシリーズで用意されています。外部割り込みが1本のピンの信号で割り込みを起こすのに対し、このピン変化割り込みは複数のピンの状態を割り込みの対象にできます。たとえば、いくつかの操作スイッチのうちどれかが押されたらこの割り込みを起こして対応する処理を行うようなプログラミングができます。

<avr/interrupt.h>に使われている新定義一覧

新定義名 廃止定義名 定義説明 有効デバイス
ADC_vect SIG_ADC ADC Conversion Complete AT90S2333 AT90S4433 AT90S4434 AT90S8535 AT90PWM216 AT90PWM2B AT90PWM316 AT90PWM3B AT90PWM3 AT90PWM2 AT90PWM1 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega1284P ATmega16 ATmega163 ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega32 ATmega323 ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega48P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega8 ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATtiny13 ATtiny15 ATtiny26 ATtiny43U ATtiny48 ATtiny24 ATtiny44 ATtiny84 ATtiny45 ATtiny25 ATtiny85 ATtiny261 ATtiny461 ATtiny861 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
ANALOG_COMP_0_vect SIG_COMPARATOR0 Analog Comparator 0 AT90PWM3 AT90PWM2 AT90PWM1
ANALOG_COMP_1_vect SIG_COMPARATOR1 Analog Comparator 1 AT90PWM3 AT90PWM2 AT90PWM1
ANALOG_COMP_2_vect SIG_COMPARATOR2 Analog Comparator 2 AT90PWM3 AT90PWM2 AT90PWM1
ANALOG_COMP_vect SIG_COMPARATOR Analog Comparator AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega1284P ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega48P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
ANA_COMP_vect SIG_COMPARATOR Analog Comparator AT90S1200 AT90S2313 AT90S2333 AT90S4414 AT90S4433 AT90S4434 AT90S8515 AT90S8535 ATmega16 ATmega161 ATmega162 ATmega163 ATmega32 ATmega323 ATmega8 ATmega8515 ATmega8535 ATtiny11 ATtiny12 ATtiny13 ATtiny15 ATtiny2313 ATtiny26 ATtiny28 ATtiny43U ATtiny48 ATtiny24 ATtiny44 ATtiny84 ATtiny45 ATtiny25 ATtiny85 ATtiny261 ATtiny461 ATtiny861
CANIT_vect SIG_CAN_INTERRUPT1 CAN Transfer Complete or Error AT90CAN128 AT90CAN32 AT90CAN64
EEPROM_READY_vect SIG_EEPROM_READY SIG_EE_READY CAN Transfer Complete or Error ATtiny2313
EE_RDY_vect SIG_EEPROM_READY EEPROM Ready AT90S2333 AT90S4433 AT90S4434 AT90S8535 ATmega16 ATmega161 ATmega162 ATmega163 ATmega32 ATmega323 ATmega8 ATmega8515 ATmega8535 ATtiny12 ATtiny13 ATtiny15 ATtiny26 ATtiny43U ATtiny48 ATtiny24 ATtiny44 ATtiny84 ATtiny45 ATtiny25 ATtiny85 ATtiny261 ATtiny461 ATtiny861
EE_READY_vect SIG_EEPROM_READY EEPROM Ready AT90PWM3 AT90PWM2 AT90PWM1 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega1284P ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega32HVB ATmega406 ATmega48P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATmega16HVA AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
EXT_INT0_vect SIG_INTERRUPT0 External Interrupt Request 0 ATtiny24 ATtiny44 ATtiny84
INT0_vect SIG_INTERRUPT0 External Interrupt 0 AT90S1200 AT90S2313 AT90S2323 AT90S2333 AT90S2343 AT90S4414 AT90S4433 AT90S4434 AT90S8515 AT90S8535 AT90PWM216 AT90PWM2B AT90PWM316 AT90PWM3B AT90PWM3 AT90PWM2 AT90PWM1 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega1284P ATmega16 ATmega161 ATmega162 ATmega163 ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega32 ATmega323 ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega32HVB ATmega406 ATmega48P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega8 ATmega8515 ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATmega16HVA ATtiny11 ATtiny12 ATtiny13 ATtiny15 ATtiny22 ATtiny2313 ATtiny26 ATtiny28 ATtiny43U ATtiny48 ATtiny45 ATtiny25 ATtiny85 ATtiny261 ATtiny461 ATtiny861 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
INT1_vect SIG_INTERRUPT1 External Interrupt Request 1 AT90S2313 AT90S2333 AT90S4414 AT90S4433 AT90S4434 AT90S8515 AT90S8535 AT90PWM216 AT90PWM2B AT90PWM316 AT90PWM3B AT90PWM3 AT90PWM2 AT90PWM1 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega1284P ATmega16 ATmega161 ATmega162 ATmega163 ATmega168P ATmega32 ATmega323 ATmega328P ATmega32HVB ATmega406 ATmega48P ATmega64 ATmega8 ATmega8515 ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATmega16HVA ATtiny2313 ATtiny28 ATtiny48 ATtiny261 ATtiny461 ATtiny861 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
INT2_vect SIG_INTERRUPT2 External Interrupt Request 2 AT90PWM3 AT90PWM2 AT90PWM1 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega1284P ATmega16 ATmega161 ATmega162 ATmega32 ATmega323 ATmega32HVB ATmega406 ATmega64 ATmega8515 ATmega8535 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATmega16HVA AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
INT3_vect SIG_INTERRUPT3 External Interrupt Request 3 AT90PWM3 AT90PWM2 AT90PWM1 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega32HVB ATmega406 ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
INT4_vect SIG_INTERRUPT4 External Interrupt Request 4 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
INT5_vect SIG_INTERRUPT5 External Interrupt Request 5 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
INT6_vect SIG_INTERRUPT6 External Interrupt Request 6 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
INT7_vect SIG_INTERRUPT7 External Interrupt Request 7 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
IO_PINS_vect SIG_PIN SIG_PIN_CHANGE External Interrupt Request 0 ATtiny11 ATtiny12 ATtiny15 ATtiny26
LCD_vect SIG_LCD LCD Start of Frame ATmega169 ATmega169P ATmega329 ATmega3290 ATmega3290P ATmega649 ATmega6490
LOWLEVEL_IO_PINS_vect SIG_PIN Low-level Input on Port B ATtiny28
OVRIT_vect SIG_CAN_OVERFLOW1 CAN Timer Overrun AT90CAN128 AT90CAN32 AT90CAN64
PCINT0_vect SIG_PIN_CHANGE0 Pin Change Interrupt Request 0 ATmega162 ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega32HVB ATmega406 ATmega48P ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATtiny13 ATtiny43U ATtiny48 ATtiny24 ATtiny44 ATtiny84 ATtiny45 ATtiny25 ATtiny85 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
PCINT1_vect SIG_PIN_CHANGE1 Pin Change Interrupt Request 1 ATmega162 ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega32HVB ATmega406 ATmega48P ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATtiny43U ATtiny48 ATtiny24 ATtiny44 ATtiny84 AT90USB162 AT90USB82
PCINT2_vect SIG_PIN_CHANGE2 Pin Change Interrupt Request 2 ATmega3250 ATmega3250P ATmega328P ATmega3290 ATmega3290P ATmega48P ATmega6450 ATmega6490 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATtiny48
PCINT3_vect SIG_PIN_CHANGE3 Pin Change Interrupt Request 3 ATmega3250 ATmega3250P ATmega3290 ATmega3290P ATmega6450 ATmega6490 ATmega324P ATmega164P ATmega644P ATmega644 ATtiny48
PCINT_vect SIG_PIN_CHANGE SIG_PCINT Pin Change Interrupt Request 3 ATtiny2313 ATtiny261 ATtiny461 ATtiny861
PSC0_CAPT_vect SIG_PSC0_CAPTURE PSC0 Capture Event AT90PWM3 AT90PWM2 AT90PWM1
PSC0_EC_vect SIG_PSC0_END_CYCLE PSC0 End Cycle AT90PWM3 AT90PWM2 AT90PWM1
PSC1_CAPT_vect SIG_PSC1_CAPTURE PSC1 Capture Event AT90PWM3 AT90PWM2 AT90PWM1
PSC1_EC_vect SIG_PSC1_END_CYCLE PSC1 End Cycle AT90PWM3 AT90PWM2 AT90PWM1
PSC2_CAPT_vect SIG_PSC2_CAPTURE PSC2 Capture Event AT90PWM3 AT90PWM2 AT90PWM1
PSC2_EC_vect SIG_PSC2_END_CYCLE PSC2 End Cycle AT90PWM3 AT90PWM2 AT90PWM1
SPI_STC_vect SIG_SPI Serial Transfer Complete AT90S2333 AT90S4414 AT90S4433 AT90S4434 AT90S8515 AT90S8535 AT90PWM216 AT90PWM2B AT90PWM316 AT90PWM3B AT90PWM3 AT90PWM2 AT90PWM1 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega1284P ATmega16 ATmega161 ATmega162 ATmega163 ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega32 ATmega323 ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega32HVB ATmega48P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega8 ATmega8515 ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATmega16HVA ATtiny48 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
SPM_RDY_vect SIG_SPM_READY Store Program Memory Ready ATmega16 ATmega162 ATmega32 ATmega323 ATmega8 ATmega8515 ATmega8535
SPM_READY_vect SIG_SPM_READY Store Program Memory Read AT90PWM3 AT90PWM2 AT90PWM1 AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega1284P ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega406 ATmega48P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIM0_COMPA_vect SIG_OUTPUT_COMPARE0A Timer/Counter Compare Match A ATtiny13 ATtiny43U ATtiny24 ATtiny44 ATtiny84 ATtiny45 ATtiny25 ATtiny85
TIM0_COMPB_vect SIG_OUTPUT_COMPARE0B Timer/Counter Compare Match B ATtiny13 ATtiny43U ATtiny24 ATtiny44 ATtiny84 ATtiny45 ATtiny25 ATtiny85
TIM0_OVF_vect SIG_OVERFLOW0 Timer/Counter0 Overflow ATtiny13 ATtiny43U ATtiny24 ATtiny44 ATtiny84 ATtiny45 ATtiny25 ATtiny85
TIM1_CAPT_vect SIG_INPUT_CAPTURE1 Timer/Counter1 Capture Event ATtiny24 ATtiny44 ATtiny84
TIM1_COMPA_vect SIG_OUTPUT_COMPARE1A Timer/Counter1 Compare Match A ATtiny24 ATtiny44 ATtiny84 ATtiny45 ATtiny25 ATtiny85
TIM1_COMPB_vect SIG_OUTPUT_COMPARE1B Timer/Counter1 Compare Match B ATtiny24 ATtiny44 ATtiny84 ATtiny45 ATtiny25 ATtiny85
TIM1_OVF_vect SIG_OVERFLOW1 Timer/Counter1 Overflow ATtiny24 ATtiny44 ATtiny84 ATtiny45 ATtiny25 ATtiny85
TIMER0_CAPT_vect SIG_INPUT_CAPTURE0 ADC Conversion Complete ATtiny261 ATtiny461 ATtiny861
TIMER0_COMPA_vect SIG_OUTPUT_COMPARE0A TimerCounter0 Compare Match A ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATmega16HVA ATtiny2313 ATtiny48 ATtiny261 ATtiny461 ATtiny861 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER0_COMPB_vect SIG_OUTPUT_COMPARE0B SIG_OUTPUT_COMPARE0_B Timer Counter 0 Compare Match B AT90PWM3 AT90PWM2 AT90PWM1 ATmega1284P ATmega168P ATmega328P ATmega32HVB ATmega48P ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATmega16HVA ATtiny2313 ATtiny48 ATtiny261 ATtiny461 ATtiny861 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER0_COMP_A_vect SIG_OUTPUT_COMPARE0A SIG_OUTPUT_COMPARE0_A Timer/Counter0 Compare Match A AT90PWM3 AT90PWM2 AT90PWM1
TIMER0_COMP_vect SIG_OUTPUT_COMPARE0 Timer/Counter0 Compare Match AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega16 ATmega161 ATmega162 ATmega165 ATmega165P ATmega169 ATmega169P ATmega32 ATmega323 ATmega325 ATmega3250 ATmega3250P ATmega329 ATmega3290 ATmega3290P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega8515 ATmega8535
TIMER0_OVF0_vect SIG_OVERFLOW0 Timer/Counter0 Overflow AT90S2313 AT90S2323 AT90S2343 ATtiny22 ATtiny26
TIMER0_OVF_vect SIG_OVERFLOW0 Timer/Counter0 Overflow AT90S1200 AT90S2333 AT90S4414 AT90S4433 AT90S4434 AT90S8515 AT90S8535 AT90PWM216 AT90PWM2B AT90PWM316 AT90PWM3B AT90PWM3 AT90PWM2 AT90PWM1 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega1284P ATmega16 ATmega161 ATmega162 ATmega163 ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega32 ATmega323 ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega32HVB ATmega48P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega8 ATmega8515 ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATmega16HVA ATtiny11 ATtiny12 ATtiny15 ATtiny2313 ATtiny28 ATtiny48 ATtiny261 ATtiny461 ATtiny861 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER1_CAPT1_vect SIG_INPUT_CAPTURE1 Timer/Counter1 Capture Event AT90S2313
TIMER1_CAPT_vect SIG_INPUT_CAPTURE1 Timer/Counter Capture Event AT90S2333 AT90S4414 AT90S4433 AT90S4434 AT90S8515 AT90S8535 AT90PWM216 AT90PWM2B AT90PWM316 AT90PWM3B AT90PWM3 AT90PWM2 AT90PWM1 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega1284P ATmega16 ATmega161 ATmega162 ATmega163 ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega32 ATmega323 ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega48P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega8 ATmega8515 ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATtiny2313 ATtiny48 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER1_CMPA_vect SIG_OUTPUT_COMPARE1A Timer/Counter1 Compare Match 1A ATtiny26
TIMER1_CMPB_vect SIG_OUTPUT_COMPARE1B Timer/Counter1 Compare Match 1B ATtiny26
TIMER1_COMP1_vect SIG_OUTPUT_COMPARE1A Timer/Counter1 Compare Match AT90S2313
TIMER1_COMPA_vect SIG_OUTPUT_COMPARE1A Timer/Counter1 Compare Match A AT90S4414 AT90S4434 AT90S8515 AT90S8535 AT90PWM216 AT90PWM2B AT90PWM316 AT90PWM3B AT90PWM3 AT90PWM2 AT90PWM1 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega1284P ATmega16 ATmega161 ATmega162 ATmega163 ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega32 ATmega323 ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega32HVB ATmega48P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega8 ATmega8515 ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATmega16HVA ATtiny2313 ATtiny48 ATtiny261 ATtiny461 ATtiny861 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER1_COMPB_vect SIG_OUTPUT_COMPARE1B Timer/Counter1 Compare MatchB AT90S4414 AT90S4434 AT90S8515 AT90S8535 AT90PWM216 AT90PWM2B AT90PWM316 AT90PWM3B AT90PWM3 AT90PWM2 AT90PWM1 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega1284P ATmega16 ATmega161 ATmega162 ATmega163 ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega32 ATmega323 ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega32HVB ATmega48P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega8 ATmega8515 ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATmega16HVA ATtiny2313 ATtiny48 ATtiny261 ATtiny461 ATtiny861 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER1_COMPC_vect SIG_OUTPUT_COMPARE1C Timer/Counter1 Compare Match C AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER1_COMPD_vect SIG_OUTPUT_COMPARE0D Timer/Counter1 Compare Match D ATtiny261 ATtiny461 ATtiny861
TIMER1_COMP_vect SIG_OUTPUT_COMPARE1A Timer/Counter1 Compare Match AT90S2333 AT90S4433 ATtiny15
TIMER1_OVF1_vect SIG_OVERFLOW1 Timer/Counter1 Overflow AT90S2313 ATtiny26
TIMER1_OVF_vect SIG_OVERFLOW1 Timer/Counter1 Overflow AT90S2333 AT90S4414 AT90S4433 AT90S4434 AT90S8515 AT90S8535 AT90PWM216 AT90PWM2B AT90PWM316 AT90PWM3B AT90PWM3 AT90PWM2 AT90PWM1 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega1284P ATmega16 ATmega161 ATmega162 ATmega163 ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega32 ATmega323 ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega32HVB ATmega48P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega8 ATmega8515 ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATmega16HVA ATtiny15 ATtiny2313 ATtiny48 ATtiny261 ATtiny461 ATtiny861 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER2_COMPA_vect SIG_OUTPUT_COMPARE2A Timer/Counter2 Compare Match A ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER2_COMPB_vect SIG_OUTPUT_COMPARE2B Timer/Counter2 Compare Match A ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER2_COMP_vect SIG_OUTPUT_COMPARE2 Timer/Counter2 Compare Match AT90S4434 AT90S8535 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega16 ATmega161 ATmega162 ATmega163 ATmega165 ATmega165P ATmega169 ATmega169P ATmega32 ATmega323 ATmega325 ATmega3250 ATmega3250P ATmega329 ATmega3290 ATmega3290P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega8 ATmega8535
TIMER2_OVF_vect SIG_OVERFLOW2 Timer/Counter2 Overflow AT90S4434 AT90S8535 AT90CAN128 AT90CAN32 AT90CAN64 ATmega103 ATmega128 ATmega1284P ATmega16 ATmega161 ATmega162 ATmega163 ATmega165 ATmega165P ATmega168P ATmega169 ATmega169P ATmega32 ATmega323 ATmega325 ATmega3250 ATmega3250P ATmega328P ATmega329 ATmega3290 ATmega3290P ATmega48P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega8 ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER3_CAPT_vect SIG_INPUT_CAPTURE3 Timer/Counter3 Capture Event AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega1284P ATmega162 ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER3_COMPA_vect SIG_OUTPUT_COMPARE3A Timer/Counter3 Compare Match A AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega1284P ATmega162 ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER3_COMPB_vect SIG_OUTPUT_COMPARE3B Timer/Counter3 Compare Match B AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega1284P ATmega162 ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER3_COMPC_vect SIG_OUTPUT_COMPARE3C Timer/Counter3 Compare Match C AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER3_OVF_vect SIG_OVERFLOW3 Timer/Counter3 Overflow AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega1284P ATmega162 ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TIMER4_CAPT_vect SIG_INPUT_CAPTURE4 Timer/Counter4 Capture Event ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
TIMER4_COMPA_vect SIG_OUTPUT_COMPARE4A Timer/Counter4 Compare Match A ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
TIMER4_COMPB_vect SIG_OUTPUT_COMPARE4B Timer/Counter4 Compare Match B ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
TIMER4_COMPC_vect SIG_OUTPUT_COMPARE4C Timer/Counter4 Compare Match C ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
TIMER4_OVF_vect SIG_OVERFLOW4 Timer/Counter4 Overflow ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
TIMER5_CAPT_vect SIG_INPUT_CAPTURE5 Timer/Counter5 Capture Event ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
TIMER5_COMPA_vect SIG_OUTPUT_COMPARE5A Timer/Counter5 Compare Match A ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
TIMER5_COMPB_vect SIG_OUTPUT_COMPARE5B Timer/Counter5 Compare Match B ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
TIMER5_COMPC_vect SIG_OUTPUT_COMPARE5C Timer/Counter5 Compare Match C ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
TIMER5_OVF_vect SIG_OVERFLOW5 Timer/Counter5 Overflow ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
TWI_vect SIG_2WIRE_SERIAL 2-wire Serial Interface AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega1284P ATmega16 ATmega163 ATmega168P ATmega32 ATmega323 ATmega328P ATmega32HVB ATmega406 ATmega48P ATmega64 ATmega8 ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATtiny48 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
TXDONE_vect SIG_TXDONE Transmission Done Bit Timer Flag 2 Interrupt AT86RF401
TXEMPTY_vect SIG_TXBE Transmit Buffer Empty Bit Itmer Flag 0 Interrupt AT86RF401
UART0_RX_vect SIG_UART0_RECV UART0 Rx Complete ATmega161
UART0_TX_vect SIG_UART0_TRANS UART0 Tx Complete ATmega161
UART0_UDRE_vect SIG_UART0_DATA UART0 Data Register Empty ATmega161
UART1_RX_vect SIG_UART1_RECV UART1 Rx Complete ATmega161
UART1_TX_vect SIG_UART1_TRANS UART1 Tx Complete ATmega161
UART1_UDRE_vect SIG_UART1_DATA UART1 Data Register Empty ATmega161
UART_RX_vect SIG_UART_RECV UART Rx Complete AT90S2313 AT90S2333 AT90S4414 AT90S4433 AT90S4434 AT90S8515 AT90S8535 ATmega103 ATmega163 ATmega8515
UART_TX_vect SIG_UART_TRANS UART Tx Complete AT90S2313 AT90S2333 AT90S4414 AT90S4433 AT90S4434 AT90S8515 AT90S8535 ATmega103 ATmega163 ATmega8515
UART_UDRE_vect SIG_UART_DATA UART Data Register Empty AT90S2313 AT90S2333 AT90S4414 AT90S4433 AT90S4434 AT90S8515 AT90S8535 ATmega103 ATmega163 ATmega8515
USART0_RXC_vect SIG_USART0_RECV USART0 Rx Complete ATmega162
USART0_RX_vect SIG_UART0_RECV USART0 Rx Complete AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega1284P ATmega165 ATmega165P ATmega169 ATmega169P ATmega325 ATmega329 ATmega64 ATmega645 ATmega649 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644
USART0_TXC_vect SIG_USART0_TRANS USART0 Tx Complete ATmega162
USART0_TX_vect SIG_UART0_TRANS USART0 Tx Complete AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega1284P ATmega165 ATmega165P ATmega169 ATmega169P ATmega325 ATmega3250 ATmega3250P ATmega329 ATmega3290 ATmega3290P ATmega64 ATmega645 ATmega6450 ATmega649 ATmega6490 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644
USART0_UDRE_vect SIG_UART0_DATA USART0 Data Register Empty AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega1284P ATmega162 ATmega165 ATmega165P ATmega169 ATmega169P ATmega325 ATmega329 ATmega64 ATmega645 ATmega649 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644
USART1_RXC_vect SIG_USART1_RECV USART1 Rx Complete ATmega162
USART1_RX_vect SIG_UART1_RECV USART1 Rx Complete AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega1284P ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
USART1_TXC_vect SIG_USART1_TRANS USART1 Tx Complete ATmega162
USART1_TX_vect SIG_UART1_TRANS USART1 Tx Complete AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega1284P ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
USART1_UDRE_vect SIG_UART1_DATA USART1 Data Register Empty AT90CAN128 AT90CAN32 AT90CAN64 ATmega128 ATmega1284P ATmega162 ATmega64 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646
USART2_RX_vect SIG_USART2_RECV USART2 Rx Complete ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
USART2_TX_vect SIG_USART2_TRANS USART2 Tx Complete ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
USART2_UDRE_vect SIG_USART2_DATA USART2 Data register Empty ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
USART3_RX_vect SIG_USART3_RECV USART3 Rx Complete ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
USART3_TX_vect SIG_USART3_TRANS USART3 Tx Complete ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
USART3_UDRE_vect SIG_USART3_DATA USART3 Data register Empty ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561
USART_RXC_vect SIG_USART_RECV SIG_UART_RECV USART Rx Complete ATmega16 ATmega32 ATmega323 ATmega8
USART_RX_vect SIG_USART_RECV SIG_UART_RECV USART Rx Complete AT90PWM3 AT90PWM2 AT90PWM1 ATmega168P ATmega3250 ATmega3250P ATmega328P ATmega3290 ATmega3290P ATmega48P ATmega6450 ATmega6490 ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATtiny2313
USART_TXC_vect SIG_USART_TRANS SIG_UART_TRANS USART Tx Complete ATmega16 ATmega32 ATmega323 ATmega8
USART_TX_vect SIG_USART_TRANS SIG_UART_TRANS USART Tx Complete AT90PWM3 AT90PWM2 AT90PWM1 ATmega168P ATmega328P ATmega48P ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATtiny2313
USART_UDRE_vect SIG_USART_DATA SIG_UART_DATA USART Data Register Empty AT90PWM3 AT90PWM2 AT90PWM1 ATmega16 ATmega168P ATmega32 ATmega323 ATmega3250 ATmega3250P ATmega328P ATmega3290 ATmega3290P ATmega48P ATmega6450 ATmega6490 ATmega8 ATmega8535 ATmega88P ATmega168 ATmega48 ATmega88 ATtiny2313
USI_OVERFLOW_vect SIG_USI_OVERFLOW USI Overflow ATmega165 ATmega165P ATmega169 ATmega169P ATmega325 ATmega3250 ATmega3250P ATmega329 ATmega3290 ATmega3290P ATmega645 ATmega6450 ATmega649 ATmega6490 ATtiny2313
USI_OVF_vect SIG_USI_OVERFLOW USI Overflow ATtiny26 ATtiny43U ATtiny24 ATtiny44 ATtiny84 ATtiny45 ATtiny25 ATtiny85 ATtiny261 ATtiny461 ATtiny861
USI_START_vect SIG_USI_START USI Start Condition ATmega165 ATmega165P ATmega169 ATmega169P ATmega325 ATmega3250 ATmega3250P ATmega329 ATmega3290 ATmega3290P ATmega645 ATmega6450 ATmega649 ATmega6490 ATtiny2313 ATtiny43U ATtiny45 ATtiny25 ATtiny85 ATtiny261 ATtiny461 ATtiny861
USI_STRT_vect SIG_USI_START USI Start ATtiny26
USI_STR_vect SIG_USI_START USI START ATtiny24 ATtiny44 ATtiny84
WATCHDOG_vect SIG_WATCHDOG_TIMEOUT Watchdog Time-out ATtiny24 ATtiny44 ATtiny84
WDT_OVERFLOW_vect SIG_WATCHDOG_TIMEOUT SIG_WDT_OVERFLOW Watchdog Timer Overflow ATtiny2313
WDT_vect SIG_WDT SIG_WATCHDOG_TIMEOUT Watchdog Timeout Interrupt AT90PWM3 AT90PWM2 AT90PWM1 ATmega1284P ATmega168P ATmega328P ATmega32HVB ATmega406 ATmega48P ATmega88P ATmega168 ATmega48 ATmega88 ATmega640 ATmega1280 ATmega1281 ATmega2560 ATmega2561 ATmega324P ATmega164P ATmega644P ATmega644 ATmega16HVA ATtiny13 ATtiny43U ATtiny48 ATtiny45 ATtiny25 ATtiny85 ATtiny261 ATtiny461 ATtiny861 AT90USB162 AT90USB82 AT90USB1287 AT90USB1286 AT90USB647 AT90USB646