信号(パルス)の時間の測定について


まつ  2003-07-09 05:11:00  No: 78588

パラレルポートからの信号(on,offの時間)を測定して,モニタに出力したくて,下記のようなプログラムを組んだのですが,うまく測定してくれません,時間に比例した値がLabelに出てくれれば,あとで補正をすればよいと考えているのですが.
誰か教えてください。お願いします。

Option Explicit
Private Declare Function inpb% Lib "kio32.DLL" (ByVal port%)
Private Declare Function inpw% Lib "kio32.DLL" (ByVal port%)
Private Declare Sub outb Lib "kio32.DLL" (ByVal port%, ByVal data%)
Private Declare Sub outw Lib "kio32.DLL" (ByVal port%, ByVal data%)

Dim outdata%, outdate2%, indata%
Dim cdata1&, cdata2&
Dim port%, ch%
Dim i&, idat1%, idat2%

Private Sub Command1_Click()

outb port + 2, &H20

End Sub

Private Sub Command2_Click()

cdata1 = 0

Do
indata = inpb(port)
cdata1 = cdata1 + 1
DoEvents
Loop Until indata = 0

Label4 = cdata1

cdata2 = 0

Do
indata = inpb(port)
cdata2 = cdata2 + 1
DoEvents
Loop Until indata = 1

Label5 = cdata1 + cdata2

End Sub

Private Sub Command3_Click()
  End
End Sub

Private Sub Form_Load()

port = &H378

outdata = 0
outb port, outdata

End Sub


Loreley  2003-07-09 07:20:03  No: 78589

Private Declare Function inpb% Lib "kio32.DLL" (ByVal port%)
Private Declare Function inpw% Lib "kio32.DLL" (ByVal port%)

Functionなのに戻り値がありませんね。
なのに

indata = inpb(port)

では戻り値を求めています。

そのAPIは、どこかの HPで私も見たことがありますが、
私がためした時はイマイチうまくいきませんでした。
(とはいえ、ちょっとしか試していないので、自分の設定がミスってた可能性が大きいですけど)

接続している機器とかに問題がないかなども見てみる必要がありますね。
ポートアドレスが間違ってないかとか。


Y.O  2003-10-26 08:43:01  No: 78590

はじめまして、Y.Oといいます。
だいぶ遅レスですが同様に困っている人もいるかもしれないので解説します。
ココで使われているkio32.dllですが、
ユーザプログラムで直接ポートをいじれないWinNT,2000,XPでは動かないと思います。

その場合はMAKEIO.SYSを使ってください。
WinNT,2000,XPでポートがいじれるようになると思います。
(なおこのドライバはWinNTなどの隠しAPIを呼ぶという荒業を使用しています注意しましょう)


Say  2003-10-26 15:54:27  No: 78591

kio32.dllを使っているのなら読んでいると思うけど、
念のため参考までに

Kit工房  店長通信  11号
[続・エクセルやワードのVBAでパソコンのパラレルポートを使ってみよう]
http://webclub.kcom.ne.jp/mc/kitkoubo/tuusin11.html


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加