• 締切済み

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); //スイッチ状態表示 } }

みんなの回答

  • pyonmae
  • ベストアンサー率64% (40/62)
回答No.1

こんにちは。 そうですね。大枠は合っているように見えます。 基本に立ち返って、 return文って何するものなんだっけ? とか、 charで宣言された変数を24bit右シフトするとどうなるんだろう? とか、ソボクな所から考えてみられてはどうでしょう。 それ以前の話ですが、実行結果はどうなのでしょう? 「トグルスイッチテストプログラム」とかターミナルに表示されているのでしょうか? putsだのprintfだのは、ちゃんと動作しているのでしょうか。 どちらかというと、そっちの方が気になりますが・・・。

j16ac08
質問者

お礼

無事トグルスイッチのデータを出力することができました!ありがとうございます。