H8-3069ネット対応マイコンにMESを入れる > 基本編3.DIPスイッチの入力を確認してみる

3.DIPスイッチの入力を確認してみる

ブラウザを使わない確認

これからH8-3069ネット対応マイコン用の「I/O BOARD」のDIPスイッチの入力を確認します。このページで目標としているのはブラウザからアクセスしてDIPスイッチの入力確認をすることですが、その前にDIPスイッチの入力の状態をハイパーターミナル上に出すプログラムからやります。

I/O BOARDのDIPスイッチ

/*DIPスイッチの入力を確認するプログラム*/ #include <h8/reg3067.h> //レジスタの定義 #include <mes2.h> int sq(int x); int main(){ int Data; int Data2; int i,j; P5DDR = 0xF0; P5PCR = 0x0F; //プルアップ Data = P5DR; Data = Data & 0x0F; //下位4ビット入力 for(i=1;i<16;){ Data2 = Data & i; j = sq(i); Data2 = Data2 >> j; switch(Data2){ case 1 : printf("%dはOFFです。\r\n",j + 1); break; default : printf("%dはONです。\r\n",j + 1); break; } //switch i = i << 1; } //for } //main int sq(int x){ //シフトするビット数を決める int a; for(a=0;a<=3;++a){ x = x / 2; if(x == 0) break; } return a; }

上のプログラムをdip1.cという名前で保存します。保存先はC:\mes\dip1フォルダの中にします(dip1フォルダをmesフォルダの中に新規作成する)。
なお、dip1.cが欲しい場合はこちらにおきます。ご自分のPCにダウンロードしたうえでお使いください。
このdip1.cをコンパイル、RAMに転送します。そして、dip1.elfを実行すると、下のようにDIPスイッチの入力がハイパーターミナルの画面に表示されます。

ハイパーターミナルでDIPスイッチの入力を確認する

このプログラムでのポイントはP5PCR = 0x0F;でした。私は最初これを書かずに入力を確認していたら、どうも動作がおかしいので、試しにテスターでDIPスイッチのそれぞれのピンの電圧を測ってみました。1番ピン、2番ピン、3番ピン、4番ピンと順に計っていくとだんだんと電圧が落ちていくのが分かりました。それでプルアップしなければいけないことに気が付きました。初学者なんでこんなもんです。
入力の判定は、DIPスイッチがOFFのときHIGH(1)、ONのときLOW(0)なので、それぞれのビットが1かそれ以外(default)かを見ています。私はビット操作が苦手なのでちょっとまわりくどい書き方かもしれないです。まあ、動いたんでよしって事にしてください。

ブラウザを使った確認

次はブラウザを使って同じことをやります。と、言っても表示先をブラウザにするってだけなのでさっきのプログラムと変わりありません。違うことと言えば、HTMLファイル用にタグをprintfすることくらいです。

/*DIPスイッチの入力をブラウザから確認するプログラム*/ #include <h8/reg3067.h> //レジスタの定義 #include <mes2.h> int sq(int x); int main(){ int Data; int Data2; int i,j; P5DDR = 0xF0; P5PCR = 0x0F; //プルアップ Data = P5DR; Data = Data & 0x0F; //下位4ビット入力 printf("<html><body>\r\n"); printf("<h1>DIPスイッチテストページ</h1><hr>\r\n"); for(i=1;i<16;){ Data2 = Data & i; j = sq(i); Data2 = Data2 >> j; switch(Data2){ case 1 : printf("%dはOFFです。\r\n",j + 1); break; default : printf("%dはONです。\r\n",j + 1); break; } //switch i = i << 1; } //for printf("</body></html>"); } //main int sq(int x){ //シフトするビット数を決める int a; for(a=0;a<=3;++a){ x = x / 2; if(x == 0) break; } return a; }

このdip2.cはこちらにおきます。ダウンロードして使ってください。保存先はC:\mes\dip2フォルダの中にします(dip2フォルダをmesフォルダの中に新規作成する)。そして、コンパイル、RAMに転送します。そしてhttp.elfを実行し、ブラウザを立ち上げてhttp://192.168.10.2/dip2.elfを開きます。下のような表示がでて、DIPスイッチの状態を表示します。なお、1回しか取り込まないので、スイッチをいじったあとはブラウザのリロードボタンでもう一度読み込んでください。

ブラウザからDIPスイッチの入力を確認する

次は4.ブラウザから入力した文字列を液晶に表示させるです。>> 






[PR]子育てママさんへ:3年毎に15万円うけとれる保険?