魔法の言葉「volatile」
割り込み関連プログラミングの説明のため、ちょいと昔の記事を
発掘してきましたんで紹介しておきます。
※状況
・8bitマイコンでの処理。
・割り込み内で多バイトデータを処理したい。
・一度に処理できるのが1バイトの8bitマイコンなんで、
wordとかlongの値だと、メイン側での読み書き処理中
に割り込みが入ると値をミスするかもしれない。
・メイン側での読み書き中は、割り込み禁止状態にして
おかなくちゃならない。
・メイン側でのwordデータの読み書きの直前に割り込み禁止に
して、処理後、割り込み有効状態を元に戻す処理が必要。
※8bitマイコンでもZ80なんかだと2バイトのロード、ストア命令
があるんで、2バイト値までだったら気にしなくて済みそう
なんですが・・・
しかし、、、2バイトの値を加工してメモリーに戻す時に、割り
込み内の処理と競合するかもしれません。
やはり割り込み禁止状態は必須。
こんなとき、処理する変数に「volatile」を付けておかないダメだっ
というお話しです。
ちなみに・・・・ Z80の割り込み処理に関してはこんな注意も!
・Z80・割り込みフラグの不具合に関するレポートの詳細情報 : Vector
「プロセッサ:1989年3月号、9月号に載せてもらった記事(テキスト)です。
※Z80のWikipaediaに
Z80 - Wikipedia の脚注[4]にこのリンクと私の名が出てました。
さっき、初めて知った(喜)。
| 固定リンク
「電子回路工作」カテゴリの記事
- 宮内 悠介 著『ラウリ・クースクを探して』(2025.04.09)
- EEPROMを使ったシリアル受信バッファ 512kバイトに増設(2024.12.26)
- 考察:提灯配線短絡箇所の発見方法(2024.11.14)
- AD620を使った計装アンプ+ノッチフィルタ(2024.11.08)
- ステッピングモータ駆動回路を24Vだけで #2(2024.10.31)
「電子工作」カテゴリの記事
- ひさしぶりのイベントだったけど・・・「ピコピコ・スイッチ」破損(2021.12.13)
- 顕微鏡用LEDリングライトのLED、そろそろ交換か(2021.09.27)
- 可変抵抗器の「陽極酸化」(2021.09.22)
- 弾帯状になったQIコネクタのコンタクトピンを・・・(2021.08.27)
- AD620を使った計装アンプとシミュレーテッド・インダクタを使ったノッチフィルタ(2021.08.16)
コメント