魔法の言葉「volatile」
割り込み関連プログラミングの説明のため、ちょいと昔の記事を
発掘してきましたんで紹介しておきます。
※状況
・8bitマイコンでの処理。
・割り込み内で多バイトデータを処理したい。
・一度に処理できるのが1バイトの8bitマイコンなんで、
wordとかlongの値だと、メイン側での読み書き処理中
に割り込みが入ると値をミスするかもしれない。
・メイン側での読み書き中は、割り込み禁止状態にして
おかなくちゃならない。
・メイン側でのwordデータの読み書きの直前に割り込み禁止に
して、処理後、割り込み有効状態を元に戻す処理が必要。
※8bitマイコンでもZ80なんかだと2バイトのロード、ストア命令
があるんで、2バイト値までだったら気にしなくて済みそう
なんですが・・・
しかし、、、2バイトの値を加工してメモリーに戻す時に、割り
込み内の処理と競合するかもしれません。
やはり割り込み禁止状態は必須。
こんなとき、処理する変数に「volatile」を付けておかないダメだっ
というお話しです。
ちなみに・・・・ Z80の割り込み処理に関してはこんな注意も!
・Z80・割り込みフラグの不具合に関するレポートの詳細情報 : Vector
「プロセッサ:1989年3月号、9月号に載せてもらった記事(テキスト)です。
※Z80のWikipaediaに
Z80 - Wikipedia の脚注[4]にこのリンクと私の名が出てました。
さっき、初めて知った(喜)。
| 固定リンク
「電子回路工作」カテゴリの記事
- LTC6101を使った電流検出回路をケースに入れる(2023.11.24)
- 今日の失敗:パーツクリーナーで「ポリスチレン」にダメージ(2023.11.10)
- 2つあるワンショットマルチの時定数比を一定にしたい(2023.10.21)
- LEDドライバー、どうしよう(2023.09.04)
- 人感センサー用オフディレータイマー回路(2023.08.26)
「電子工作」カテゴリの記事
- TRWの16pin DIP IC「8543」 これは何?(2023.10.06)
- 予告:「マイコン型導通チェッカー」「電池電圧チェッカー」値上げします(2022.11.16)
- 三和の針式テスター「GP-5」不調(2022.10.18)
- 「ダイソー ミニケース 5個組」が見つからない #2(2022.10.12)
- 「ダイソー ミニケース 5個組」が見つからない(2022.09.29)
コメント