VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 2007/05/18(Fri) 12:33
投稿者ユウジ
Eメール
URL
タイトルRe^2: 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からの割り込みがあるか
>
> これらを整理して素直に表現すればおのずから解決すると思いますよ。
> ソースコードも状態表示の部分と操作対応の部分を明確に意識した方が分かりやすい。


丁寧なお返事ありがとうございます。


DioInpBitとDioOutBitの仕様ですが

******************************************************************************************

Declare Function DioInpBit Lib "ApiDio.DLL" (ByVal hDrv As Long, ByVal InpBitNo As Integer, lpBuf As Byte) As Long


Declare Function DioOutBit Lib "ApiDio.DLL" (ByVal hDrv As Long, ByVal OutBitNo As Integer, ByVal Buf As Byte) As Long

******************************************************************************************

と宣言しています。


ボタンは4つあります。

しかし現時点で使うのは2つで

最初はすべてのLEDが消灯しています。

ボタン1を押すとLED1が点灯

もう1度押すとLED1が消灯し2が点灯する。以後2消灯3点灯・・・の繰り返し。

ボタン2を押すとすべてのLEDが消灯します。


分かりにくい説明で申し訳ない。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -