割り込みとH8の割り込みの説明をよく読んで、以下の設問に答えよ。
IRQ0とIRQ1の2つの外部割り込み信号線を有効とし、それそれが優先順位に従って動作するプログラム(70点)を作成せよ。
また、状態遷移図(30点)も作成せよ。
・IRQ1と0の割り込みハンドラは、割り込みイベントが発生した回数をカウントし、printfで表示するものとする。
・優先順位はスイッチPA0を押すごとに、切り替わるものとする。
・割り込みレベルは、IRQ0、1ともエッジトリガとする。
・割り込みイベントの発生は、ポートBのbit0とbit1をそれぞれIRQ0とIRQ1に接続し、ボートBのbit0、1を0、1に変化させることで行う。
この時、bitは同時に変化させること。(1秒周期程度でイベントを発生させる)
※1 IRQ0はコネクタCNX551の3ピン、IRQ1は4ピンに接続されている。
※2 ポートBのbit0はコネクタCNX551の16ピン、bit1は17ピンに接続されている。接続に必要な電線は別途貸出する。
※3 IRQ0とIRQ1の割り込みイベントは同時に発生している事に注意せよ。
※4 割り込みマスクされていない割り込みハンドラは、割り込みイベントの発生直後に起動されることに注意せよ。
※5 割り込みハンドラは、デフォルトの設定では、多重割り込みを行わない。
・以上のプログラムに加えて、優先されていない割り込みイベントを無効にする処理を付加する事。この処理は、スイッチPA1を押すたび
にON/OFFするように。
具体的には、IRQ0が優先された状態ではIRQ1が発生しないようにする。(IERの設定ではなくISRをアクセスすることで実現すること)
提出物: 状態遷移図、プログラムリスト(main.cとmonitor.h)
サンプルプログラムは、こちら。