投稿日 | : 2007/05/18(Fri) 11:58 |
投稿者 | : ダンボ |
Eメール | : |
URL | : |
タイトル | : Re: LED制御について |
> 質問:LEDが1〜4まであり
> ボタンを押すと1が点灯
> もう1度押すと1が消灯し2が点灯
> もう1度押すと2が消灯し3が点灯・・・
> lRet = DioInpBit(lHandle, 0, bRet(0))
> lRet = DioOutBit(lHandle, 0, 1)
面白そうな話題なんですが、DioInpBitとDioOutBitの仕様を説明してください。
特に問題になることは、
・各LEDはS/Wを兼用しているんですね。すなわち対応する4つのS/Wがある。
・bRet(i)が点灯状態を示すのか、あるいはボタンが押されたことを示すのか。
・点灯順番があり、LED1→LED2→LED3→LED4→LED1・・・
・点いているLED1を押すとLED1が消えてLED2が点く。
・点いていないLEDxを押すとLEDxが点く。そのときまで点いていたLEDyは消す。
・無限ループだとするとWaitを入れないとCPU100%になってしまうが良いのか?
普通は数ミリ秒ごとにS/Wを見るか、S/Wからの割り込みがあるか
これらを整理して素直に表現すればおのずから解決すると思いますよ。
ソースコードも状態表示の部分と操作対応の部分を明確に意識した方が分かりやすい。