ハードを制御するプログラムを作成していると、最適化を抑止したい場面に遭遇します。
極端な例ですが、出力ポートに連続して信号を出力する場合を考えて見ます。
PORT1=10;
PORT1=20;
PORT1=30;
こんな場合、まともなコンパイラなら最後の行だけを実行します。
でもこれではマイコンの出力ポートには思った通りの信号は出力されません。
で、この変数に付いては最適化をこの抑止してねとコンパイラに伝えるのがvolatileです。
英語の本来の意味は調べてみてね。
EEPROMはnon...memoryです。
今日のレッスンはこれまで。
0 件のコメント:
コメントを投稿