Arduino 日本語リファレンス


volatile

原文

volatileは変数を修飾するキーワードで、型宣言の前に付けて、コンパイラが変数を取り扱う方法を変更します。
具体的には、変数をレジスタではなくRAMからロードするよう、コンパイラに指示します。ある条件では、レジスタに記憶された変数の値は不確かだからです。
変数をvolatileとして宣言する必要があるのは、その変数がコントロールの及ばない別の場所(たとえば並行して動作するコード)で変更される可能性があるときです。Arduinoの場合、そうした状況が当てはまるのは、割り込みサービスルーチンと呼ばれる、割り込みに関連したコードだけです。

【例】

割り込みピンの状態が変化したらLEDを反転(トグル)させる例です。

int pin = 13;
volatile int state = LOW;

void setup() {
  pinMode(pin, OUTPUT);
  attachInterrupt(0, blink, CHANGE);
}

void loop() {
  digitalWrite(pin, state);
}

void blink() {
  state = !state;
}



[目次へ戻る]

Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [Arduino wiki]