Ik heb al een tijdje de K8000 tot op heden heb ik enkel de I/O uitgangen nodig gehad maar nu zou ik ook een ingang willen gebruiken. Als ik en input geef gaat de corresponderende LED oplichten maar het lukt maar niet om deze op de PC binnen te krijgen.
Ik heb de kabel al uitgemeten en die is ok.
Heeft iemand een idee waar dit kan aan liggen? Ik ben ten einde raad
allereerst: dat testprogramma deugt niet.
dan: heb je ze wel als input geconfigureerd?
En dan: ik heb ook al eens problemen gehad met de connectie aan mijn computer. Kijk of je SUB-D connector goed vastzit aan de print.
Dan: controleer of je programma gemaakt in vb6.0 een timer heeft, want je moet wel iedere keer die stap van het inlezen herhalen doormiddel van die timer.
Dan: Welke Windows heb je? Daar heb ik lang problemen mee gehad maar de oplossing was simpel
[Bericht gewijzigd door Electro op ]
Peter Claus
It is so simple to be happy, but it is so difficult to be simple
Opto-couplers zitten op juiste plaats.
SUB-D connector : alles ok
Ik gebruik een timer
Private sub timer()
ReadIOChannel (16)
text1.text = IO(16) --->> *
End sub
* Hier ben ik niet zeker van, volgens de informatie die ik gevonden heb zou het IO[16] moeten zijn, maar dan krijg ik een foutmelding
misschien is het gewoon een typfoutje hoor, maar moet het niet private sub timer1 zijn?
en is de interval van die timer ingesteld
Van die io16 ben ik het ook niet zeker ik ga het eens opzoeken
wat dacht je van :
Private Sub test()
If ReadIOchannel(16) = True Then
MsgBox ("channel 16 is high")*
End If
End Sub
bij het * moet een haakje staan maar er staat een emoticon en ik krijg die niet weg
also: vergeet dit zeker niet !!!
Option Explicit
'Declare use of the DLL
'K8D.DLL interfaces
'IO CONFIGURATION PROCEDURES
Private Declare Sub ConfigAllIOasInput Lib "k8d.dll" ()
Private Declare Sub ConfigAllIOasOutput Lib "k8d.dll" ()
Private Declare Sub ConfigIOchipAsInput Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub ConfigIOchipAsOutput Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub ConfigIOchannelAsInput Lib "k8d.dll" (ByVal Channel_no As Long)
Private Declare Sub ConfigIOchannelAsOutput Lib "k8d.dll" (ByVal Channel_no As Long)
'OUTPUT PROCEDURES
Private Declare Sub IOoutput Lib "k8d.dll" (ByVal Chip_no As Long, ByVal Data As Long)
Private Declare Sub UpdateAllIO Lib "k8d.dll" ()
Private Declare Sub ClearAllIO Lib "k8d.dll" ()
Private Declare Sub SetAllIO Lib "k8d.dll" ()
Private Declare Sub UpdateIOchip Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub ClearIOchip Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub SetIOchip Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub SetIOchannel Lib "k8d.dll" (ByVal Channel_no As Long)
Private Declare Sub ClearIOchannel Lib "k8d.dll" (ByVal Channel_no As Long)
'INPUT FUNCTIONS AND PROCEDURES
Private Declare Function ReadIOchip Lib "k8d.dll" (ByVal Chip_no As Long) As Long
Private Declare Function ReadIOchannel Lib "k8d.dll" (ByVal Channel_no As Long) As Boolean
Private Declare Sub ReadIOconficArray Lib "k8d.dll" (Array_Pointer As Long)
Private Declare Sub ReadIOdataArray Lib "k8d.dll" (Array_Pointer As Long)
Private Declare Sub ReadDACarray Lib "k8d.dll" (Array_Pointer As Long)
Private Declare Sub ReadDAarray Lib "k8d.dll" (Array_Pointer As Long)
'How to use these calls:
' ReadIOconficArray IOconfig(0)
' ReadIOdataArray IOdata(0)
' ReadDACarray DAC(1)
' ReadDAarray DA(1)
'6 BIT DAC CONVERTER PROCEDURES
Private Declare Sub OutputDACchannel Lib "k8d.dll" (ByVal Channel_no As Long, ByVal Data As Long)
Private Declare Sub ClearDACchannel Lib "k8d.dll" (ByVal Channel_no As Long)
Private Declare Sub SetDACchannel Lib "k8d.dll" (ByVal Channel_no As Long)
Private Declare Sub ClearDACchip Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub SetDACchip Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub ClearAllDAC Lib "k8d.dll" ()
Private Declare Sub SetAllDAC Lib "k8d.dll" ()
'8 BIT DA CONVERTER PROCEDURES
Private Declare Sub OutputDAchannel Lib "k8d.dll" (ByVal Channel_no As Long, ByVal Data As Long)
Private Declare Sub ClearDAchannel Lib "k8d.dll" (ByVal Channel_no As Long)
Private Declare Sub SetDAchannel Lib "k8d.dll" (ByVal Channel_no As Long)
Private Declare Sub ClearAllDA Lib "k8d.dll" ()
Private Declare Sub SetAllDA Lib "k8d.dll" ()
'8 BIT AD CONVERTER FUNCTION
Private Declare Function ReadADchannel Lib "k8d.dll" (ByVal Channel_no As Long) As Boolean
'GENERAL PROCEDURES
Private Declare Sub SelectI2CprinterPort Lib "k8d.dll" (ByVal port As Long)
Private Declare Sub Start_K8000 Lib "k8d.dll" ()
Private Declare Sub Stop_K8000 Lib "k8d.dll" ()
'COMMON USED GLOBALS
Const MaxIOcard As Long = 3
Const MaxIOchip As Long = 7
Const MaxDACchannel As Long = 32
Const MaxDAchannel As Long = 4
'Declare variables
Dim IOconfig(0 To MaxIOchip) As Long
Dim IOdata(0 To MaxIOchip) As Long
Dim DAC(1 To MaxDACchannel) As Long
Dim DA(1 To MaxDAchannel) As Long
Dim o_test As Boolean
Dim dac_out(9) As Boolean
Dim card_nr, n As Integer
Private Sub Form_Load()
card_nr = 0
n = 1
o_test = False
Start_K8000
SelectI2CprinterPort 1
ConfigAllIOasInput
End Sub
Private Sub Timer1_Timer()
ReadIOchannel (16)
Text1.Text = Time
Text2.Text = IO(16)
End Sub
Dit is de code die ik gebruik. Het uur krijg ik correct te zien, maar Text2 blijft op 0
ik heb er dit van gemaakt
Private Sub Command3_Click()
If ReadIOchannel(16) = True Then
MsgBox ("channel 16 is high")
Else:
MsgBox ("niets")
End If
End Sub
Er ligt continu spanning op io16 en toch krijg ik altijd "niets" als boodschap
code tags gebruiken jongens, krijgen jullie ook geen knipoogjes meer.
En heel graag stoppen met dubbelposten!
http://www.circuitsonline.net/forum/faq/2
[Bericht gewijzigd door Henry S. op ]
found it!!!!!!!!!
probeer dit eens:
ConfigIOchannelAsInput (16)
Dim a As Integer
a = ReadIOchannel(16)
If a = 1 Then
MsgBox ("channel 16 is high ")
End If
Dit zou moeten werken
en?
heb ik ook al eens geprobeerd.
Hier krijg ik de foutmelding : "expected function or variable"
Ik begin stilaan te denken dat er iets scheelt met mn k8000
Welke windows heb je? Want ik heb nog iets moeten downloaden vooralleer het werkte+ik heb nog iets moeten deleten vooralleer het werkte
LET WEL!!!! vooraleer een in VB6.0 programma met de K8000 werkt, moet het programma (dus project en form) worden opgeslaan en de volgende files moeten erin zitten (ook) in die folder waar het programma staat:dlportio.dll ,Fasttime32.dll, DLportio.sys, K8D.dll, K8000.exe, K8E.exe
En heb je dit erboven gezet?
Option Explicit
'Declare use of the DLL
'K8D.DLL interfaces
'IO CONFIGURATION PROCEDURES
Private Declare Sub ConfigAllIOasInput Lib "k8d.dll" ()
Private Declare Sub ConfigAllIOasOutput Lib "k8d.dll" ()
Private Declare Sub ConfigIOchipAsInput Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub ConfigIOchipAsOutput Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub ConfigIOchannelAsInput Lib "k8d.dll" (ByVal Channel_no As Long)
Private Declare Sub ConfigIOchannelAsOutput Lib "k8d.dll" (ByVal Channel_no As Long)
'OUTPUT PROCEDURES
Private Declare Sub IOoutput Lib "k8d.dll" (ByVal Chip_no As Long, ByVal Data As Long)
Private Declare Sub UpdateAllIO Lib "k8d.dll" ()
Private Declare Sub ClearAllIO Lib "k8d.dll" ()
Private Declare Sub SetAllIO Lib "k8d.dll" ()
Private Declare Sub UpdateIOchip Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub ClearIOchip Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub SetIOchip Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub SetIOchannel Lib "k8d.dll" (ByVal Channel_no As Long)
Private Declare Sub ClearIOchannel Lib "k8d.dll" (ByVal Channel_no As Long)
'INPUT FUNCTIONS AND PROCEDURES
Private Declare Function ReadIOchip Lib "k8d.dll" (ByVal Chip_no As Long) As Long
Private Declare Function ReadIOchannel Lib "k8d.dll" (ByVal Channel_no As Long) As Boolean
Private Declare Sub ReadIOconficArray Lib "k8d.dll" (Array_Pointer As Long)
Private Declare Sub ReadIOdataArray Lib "k8d.dll" (Array_Pointer As Long)
Private Declare Sub ReadDACarray Lib "k8d.dll" (Array_Pointer As Long)
Private Declare Sub ReadDAarray Lib "k8d.dll" (Array_Pointer As Long)
'How to use these calls:
' ReadIOconficArray IOconfig(0)
' ReadIOdataArray IOdata(0)
' ReadDACarray DAC(1)
' ReadDAarray DA(1)
'6 BIT DAC CONVERTER PROCEDURES
Private Declare Sub OutputDACchannel Lib "k8d.dll" (ByVal Channel_no As Long, ByVal Data As Long)
Private Declare Sub ClearDACchannel Lib "k8d.dll" (ByVal Channel_no As Long)
Private Declare Sub SetDACchannel Lib "k8d.dll" (ByVal Channel_no As Long)
Private Declare Sub ClearDACchip Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub SetDACchip Lib "k8d.dll" (ByVal Chip_no As Long)
Private Declare Sub ClearAllDAC Lib "k8d.dll" ()
Private Declare Sub SetAllDAC Lib "k8d.dll" ()
'8 BIT DA CONVERTER PROCEDURES
Private Declare Sub OutputDAchannel Lib "k8d.dll" (ByVal Channel_no As Long, ByVal Data As Long)
Private Declare Sub ClearDAchannel Lib "k8d.dll" (ByVal Channel_no As Long)
Private Declare Sub SetDAchannel Lib "k8d.dll" (ByVal Channel_no As Long)
Private Declare Sub ClearAllDA Lib "k8d.dll" ()
Private Declare Sub SetAllDA Lib "k8d.dll" ()
'8 BIT AD CONVERTER FUNCTION
Private Declare Function ReadADchannel Lib "k8d.dll" (ByVal Channel_no As Long) As Boolean
'GENERAL PROCEDURES
Private Declare Sub SelectI2CprinterPort Lib "k8d.dll" (ByVal port As Long)
Private Declare Sub Start_K8000 Lib "k8d.dll" ()
Private Declare Sub Stop_K8000 Lib "k8d.dll" ()
'COMMON USED GLOBALS
Const MaxIOcard As Long = 3
Const MaxIOchip As Long = 7
Const MaxDACchannel As Long = 32
Const MaxDAchannel As Long = 4
'Declare variables
Dim IOconfig(0 To MaxIOchip) As Long
Dim IOdata(0 To MaxIOchip) As Long
Dim DAC(1 To MaxDACchannel) As Long
Dim DA(1 To MaxDAchannel) As Long
Dim o_test As Boolean
Dim dac_out(9) As Boolean
Dim card_nr, n As Integer
Private Sub Form_Load()
card_nr = 0
n = 1
o_test = False
Start_K8000
SelectI2CprinterPort 1
ConfigAllIOasInput
End Sub