同時に複数の入力

V

varunme

Guest
、私は同時に2つの入力ビットが高いようにできるように、どのように私は以下のコードを書き換えることができます?
Code:
無効メイン(){TRISD = 0; TRISC = 0xffに、一方、(1){IF(portc.f0 == 1)portd.f0 = 1;他の場合(portc.f1 == 1)portd.f1 = 1、他の場合(portc.f2 == 1)portd.f2 = 1;他の場合(portc.f3 == 1)portd.f3 = 1;他の場合(portc.f4 == 1)portd.f4 = 1;他の場合(portc.f5 == 1)portd.f5 = 1;他の場合(portc.f6 == 1)portd.f6 = 1;}}
または我々がsimeltanouslyつのスイッチを押すと、このコードは動作するのでしょうか?
 
もし前者がfalseの場合、後者の文/比較だけ実行されることを意味し、他の- IF構造を使用しているので、このコードは、複数のキーの押下を検出しません。いずれかに該当する場合、キーが押されるので、その後他の人が検査されていないため、第二のキー押下が検出されていません。私は一般的に非常に異なるキー入力の検出を行う傾向がある。私はいくつかの擬似コードは、これは次のようになります:。PreviousBtnStateとNewBtnState:2つの変数を準備する。 - たまに(タイマーでトリガーされることがあります)(例:ビットフラグとして)すべてのボタンを次のよう - 読み取りとNewBtnStateに書き込むかPreviousBtnStateし、それに応じて、コピーがPreviousBtnStateの代わりにNewBtnState変更は、行動を決定するNewBtnState - 比較 - だけでなく、あなたが一度に多くのボタンの変化を検出することができるこの方法を繰り返しますが、あなたもボタンの組み合わせを検出するだけでなく、ボタンのリリースからボタンの押下を区別することができる。あなたは、PICば、これはさらに簡単に取得(構文から私はそれはあなたが使用しているものと仮定)入力変化通知機能を備えています。 O、および実際の同時検出を(ものはキーの押下を検出れようとしているときに本当に必要ではない)を達成するために、あなたは、単一のポートに限定されるロジックの状態を検出することができます。 Uは、いくつかの変数にポートの状態をコピーして、個別に各ビットをチェックしたり、ある種のビットパターンと比較する必要があります。
 
そのような単純な:
Code:
無効メイン(){TRISD = 0; TRISC = 0xffに、一方、(1){PORTD = PORTC;}}
もう一つのオプションで、削除されている 、他[/ I ] [/あなたが投稿上記のコードのB]文。 + + +
 
使用方法、代わりに"他の場合"の"場合"?
 
私はPORTCのビットが高い場合だけ、オンとオフを切り替える代わりにPWMを使用するので、私は、そのメソッドを使用するその後PORTDの対応するビットは、そうでない場合は、その50%100%です。
 
場合にのみ使用して、コードが動作していない
 
varunmeは、それはあなたが意図したものあまりにも明らかではない。回路の一部回路図を投稿してもらえますか? + + +
 
http://www.edaboard.com/thread234385.html [/URL]の代わりにセンサーの、私はスイッチでそれを確認したいの変更は、一度それが機能している、私が使用できるセンサー
 
例1:IF((portc.f0 == 1)&&(portc.f1 == 1))portd.f0 = 1; ...例2:((PORTC&0b00000011)== 0b00000011)portd.f0 = 1;
 
[QUOTE = andre_teprom; 1007987]これはあまりにもあなたが意図したものをクリアされていません。 [/QUOTE]私は、センサーからの入力に応じて、LEDアレイのスイッチをオンにするセンサー一つ二つのセンサが高い場合、対応する2つのLEDが高くなるというように、対応するLEDは高いですし高ければ好き
 
私は[私] turbina [/I]で提供される概念を推測して問題を解決します。 + + +
 

Welcome to EDABoard.com

Sponsor

Back
Top