- 締切済み
H8S/2552Fにおけるプログラミング
現在イエローソフト社のH8S/2552F USB-IF CPUボードを用いて,I/Oポートから32bitトルグスイッチの状態を出力しようとしています。それらのデータをシフトしつつ外部SRAMに送り、さらに32bitのデータとしてPCに取り込みたいと考えているのですが、その方法がわかりません。 以下に現状のプログラムを載せさせて頂きました。(間違いがあるのは十分承知です…) どなたか教えて下さい。よろしくお願い致します。 #define PORT4 (*((volatile unsigned char *)0xFFFFB3)) #define PORT9 (*((volatile unsigned char *)0xFFFFB8)) #define PORTH (*((volatile unsigned char *)0xFFFA14)) #define PORTJ (*((volatile unsigned char *)0xFFFA15)) unsigned long in_switch(void) { return (PORTJ <<24); return (PORTH <<16); return (PORT9 <<8 ); return (PORTJ | PORTH | PORT9 | PORT4) ; } void main() { puts("トグルスイッチテストプログラム"); while (1) { unsigned long data; printf("リターンキーで現在のスイッチ状態を表示します。"); fgetc(stdin); //リターンキー入力待ち data = in_switch();//スイッチの状態を入力 printf("現在のスイッチ状態=%d(H'%02X)\n", data, data); //スイッチ状態表示 } }
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- pyonmae
- ベストアンサー率64% (40/62)
こんにちは。 そうですね。大枠は合っているように見えます。 基本に立ち返って、 return文って何するものなんだっけ? とか、 charで宣言された変数を24bit右シフトするとどうなるんだろう? とか、ソボクな所から考えてみられてはどうでしょう。 それ以前の話ですが、実行結果はどうなのでしょう? 「トグルスイッチテストプログラム」とかターミナルに表示されているのでしょうか? putsだのprintfだのは、ちゃんと動作しているのでしょうか。 どちらかというと、そっちの方が気になりますが・・・。
お礼
無事トグルスイッチのデータを出力することができました!ありがとうございます。