- ベストアンサー
H8マイコンでスイッチが押された場合にLEDが点灯するプログラムを作成しましたが、フローチャートがわかりません。
- H8マイコンでスイッチが押された場合にLEDが点灯するプログラムを作成しましたが、フローチャートがどのようになるのかがわかりません。
- プログラムの要点を把握するためにフローチャートが必要です。組み込みシステムにおいては、フローチャートはプログラムの概要を図示する重要なツールです。
- プログラムを書く前にフローチャートを作成することで、プログラムの処理の流れを視覚的に把握することができます。フローチャートを作成することで、誤りや不具合を事前に発見しやすくなります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
プログラムを自分で考えて作ったならフローチャートはわかるのではないですか? 本やネットに載っていたか授業で作ったかでしょうか >P4DDR = 0x00; /* P4全ビットを入力に設定 */ >P4PCR = 0xff; /* P4 MOSプルアップをONにする */ >P5DDR = 0xff; /* P5全ビットを出力に設定 */ ↑はコメント通り、入出力の設定です。 プルアップ入力のため、スイッチを押した場合にゼロが入力されます。 >while (1) { ↑無限ループです。マイコン等の組込みシステムでは必須です。 ここまではご承知の通りですよね ご質問の内容は下記の部分だと思います >sw = ~P4DR; /* 入力を反転 */ ↑プルアップ入力になっているため、入力された値を反転します。 S1,S3,S4 の3つのスイッチが押された場合は4ビット目、 6ビット目、7ビット目がゼロになり以下の例のようになります。 (例)0010xxxx → 1101yyyy >ssw = sw >> 4; /* swを4ビット右にシフトしたものをsswに代入 */ ↑コメント通りです。ビットシフトはこんな感じです。 (例)1101yyyy → yyyy1101 >P5DR = ssw; /* sswをP5に出力 */ ↑コメント通りです。 PORT5の0,2,3ビットに1を出力します。よって、LED1,3,4が光ります。 >} 以上を繰り返します。 フローチャートとしては 1.入出力設定(while(1)までを順番に) 2.入力読込み・反転(Port5の4~7) 3.入力値をシフト(4~7ビットを0~3ビットに表示) 4.出力 5.2~4を繰り返す となり、これを教科書どおりに絵にするだけです。 わからない部分があれば補足に書いて下さい。