Arduinoで遊ぶページ

Arduinoで遊んだ結果を残すページです。
garretlab
ISR()

ISR()

概要

ISR()は、割り込みベクタに登録する関数を定義するためのマクロです。

ソースコード

ISR()は、hardware/tools/avr/avr/include/avr/interrupt.h に定義されています。以下に全ソースコードを示します。

#  define __INTR_ATTRS used, externally_visible

#ifdef __cplusplus
#  define ISR(vector, ...)            \
    extern "C" void vector (void) __attribute__ ((signal,__INTR_ATTRS)) __VA_ARGS__; \
    void vector (void)
#else
#  define ISR(vector, ...)            \
    void vector (void) __attribute__ ((signal,__INTR_ATTRS)) __VA_ARGS__; \
    void vector (void)
#endif

signalは、その関数が割り込みハンドラであることを示します。usedは、未使用に見える場合でもファイルに書き出すよう指示します。externally_visibleは、gccのコンパイルオプションの-fwhole_programの効果を無効にします。

バージョン

Arduino 1.8.2



メニューを表示するためにJavaScriptを有効にしてください。

Arduinoで遊ぶページ
Copyright © 2016 garretlab all rights reserved.
inserted by FC2 system