[H8-ML(5450)] Re: Cの分岐処理について
From: hisa <ahhisa@xxxxxxxxxxxxxxxx>
Date: 2005年02月16日(水)19時04分26秒
数々のレスありがとうございます。

>わたしも switch を使うのが綺麗だと思います。
やはりスイッチ文ということになるでしょうかねえ。
やはりそれが見やすくすっきりしますね。

int get_pin(void)
{
  // ピンの状態を読む
}
  switch (get_pin()) {
   case
  }

引っかかっていたのは、
ピン2本同時ON 
などのレスでもありましたが、
別々のピン群(レジスタ) から 入力ON の信号がくる場合、

pin;
と 複数の入力ONの信号 を単純には一つの変数には出来ず、

pin の一つの変数にうまくまとめる必要もあります。
テーブルを使ったりとかやってみるのですがいまいちさっぱりしません。

例にあるように、やはりget_pin() 関数でまとめるのがいいですね。

ところが 関数でも考えていたのですが
int get_pin()
{
	if(入力1){return(1);}  → case1 で入力1の処理
	else if(入力2){return(2);}→ case2 で入力2の処理	
	else if(入力1&&入力2){return(3);}
				  → case3 で入力3の処理	
     ・
     ・
}
のようになり、なら、直接ここに(ifに)入力1の処理書いてもあんまり変わらないんじゃあ??
と考えたり・・・

やっぱりこのswitch (pin)
pin変数のビット0〜に 入力1〜 のビット情報を積み上げて、それを
switch (pin)
 にすると(バイトで見る)、2pin以上同時入力にも対応できて、このようなタイプの方法がいいのかもしれません。

まとまりなくいっぱい書きましたが伝わるでしょうか

なんとなくまとまりましたので、
その方法を関数なり、テーブルなりの方法で処理する方法で考えます。





スレッド概略
[5433(R)](起点)
 └[5435(U)]
   └[表示中]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]