組込み開発、H8マイコン 割込み登録が難しい
こんばんわ慶さんです。
H8マイコンのHEWが開発環境です。割込みを登録してから処理する流れの概要を順を追って説明します。
ベクターテーブルとは、関数ポインタ配列で出来た、割込み一覧です。そのベクターテーブルをユーザ個人が登録するためにコメントアウトします。
❷自身が作成した作業領域内で、#pragmaの下に❶でコメントした割込みベクターをユーザ自身が関数として定義します。
#pragmaとは、コンパイラ依存の関数です。ベクターテーブルに割込み処理をユーザが定義するということです。
※#pragmaの下は、割込み関数として全て登録されるので、割込み以外の処理は含まないように注意します。
❸外部処理を割込み処理として設定する。
❹エッジフラグを設定する。
エッジとは、外部処理、例えば、SW入力で、立ち上がりにビットを立てるのか立ち下がりにビットを上げるのかを設定する。
❺割込み処理を受付けた段階で、ビットを立てるフラグを設定する。
❻CPU内で割込みを禁止/許可を制御する
割込み処理中は他の割込みを禁止する。割込み終了時に割込みを許可する。
❼割込み処理をイネーブル設定にする。
以上が割込み処理を登録し実行する手順です。非常に面倒でなんだかわかりません笑。
c言語で使っている技術を熟知している人でなければ何をしているのかわかりませんね。
結局、これを理解できる人は、ソフトウェアでは、関数ポインタとビットフィールドと構造体、共用体、ビット操作、インクルードの知識、あと出来ればアセンブリで、ハードウェアでは、電圧、ダイオード、正論理、負論理、SWのチャタリング、回路図が読める、本当に様々な知識が必要になります。
一朝一夜では、どうにもならないので、ソフトウェアでは最低、構造体、共用体、ポインタ、関数ポインタの使い方、ハードウェアは、正論理、負論理、回路図が読めるように学習する必要があります。