Renesas Synergy™

FAQ 3000042 : 割り込みで設定する変数の参照(CC-RL)

Q : 質問

RL78コンパイラCC-RLを使用しています。割り込み関数で値を設定する変数を、通常関数で参照しているのですが、値が反映されません。
(例)
int data;
void func(void)
{
  data = 0;
  while(data == 0);  /* 割り込み関数でdataを1に設定したらループを抜ける */


A : 回答

変数定義でvolatile修飾子が付いていない場合、最適化の設定内容によっては、値が反映されないコードが出力される場合があります。
割り込みによって変数の値が変化する場合は、変数定義でvolatile修飾子を付加してください。
(例)
volatile int data;

適用製品

e² studio
CS+ (旧 CubeSuite+)
RL78ファミリ用Cコンパイラパッケージ
他にご質問がございましたら、リクエストを送信してください