Ik probeer de K8055 (USB experimenteerbord) aan te sturen van excel visual basic.
Bij het commando setalldigital is er geen probleem en gaan alle 8 leds aan.
Bij setdigitalchannel (1) komt er volgende foutmelding:
Kan het ingangspunt van DLL setdigitalchannel in K8055d.dll
niet vinden ??????
Heeft iemand hiermee ervaring ?
MVG,
Kurt
heb je de genoemde dll op je computer, zoja, op de juiste plaats, en zoja, is ie correct gecopieerd
ander deze dll opnieuw downloaden/intsalleren
id je dll wel juist gedeclareerd???
MichielPH
Nieuwe afkorting een idee? --> CMIIR = Correct Me If I'm Rong
Heb de dll al opnieuw gedownload -> geen opl.
Andere commando's werken wel bvb.: setalldigital
Bij verkeerde commando's krijg ik een andere foutmelding
dus dat is het ook niet.
Bij het meegeleverde demoprogramma werkt alles op de interface kaart dus het zal wel aan mij liggen.
Zal misschien nog eens proberen om de hele boel opnieuw te installeren.
Alvast bedankt.
met setalldigital hoef je geen waarde mee te sturen, deze zet gewoon alle 8 uitgangen op 1
met clearalldigital zet je deze terug op 0
met setdigitalchannel (1) zou uitgang 1 op 1 moeten komen
maar dan komt de foutboodschap. (waarschijnlijk ergens een probleem met een adres ???)
ik ben ook bezig met excel en k8055 board van velleman
Bij mij lukt het wel.
Je hebt code wel goed.
Heb je bij de declaratie alles ook goed staan ?
Het commando clearalldigital blijft toch niet staan ?
Ik hoor het nog wel
Beste Kurt en dompelpompje,
ook ik probeer het aan de gang te krijgen, maar nog zonder succes. mijn eerste call (OpenDevice) levert alleen maar min 1 op
. Aan de andere kant lijkt het feit dat er een min 1 terug komt er wel op te wijzen dat de functie iets doet.
Uit jullie uitwisseling maak ik op dat het juist declareren belangrijk is, aangezien registreren van de DLL via regsvr niet gaat.
Ik heb de DLL in de system32 dir staan (volgens mij zet de setup van het demo programma die daarin), en het excel bestand ergens anders.
in mijn excel module heb ik de volgende code:
Public Declare Sub K8055D Lib "K8055D.dll" ()
Public Declare Function OpenDevice Lib "K8055D" (CardAddress As Long) As Long
Public Sub test1()
Dim v1 As Long
v1 = OpenDevice(0)
MsgBox (v1)
End Sub
Als ik de routine test1 draai krijg ik steeds -1. De demo software draait zonder problemen.
Enig idee waar de fout zit?
Alvast bedankt..
MichielPH
Nieuwe afkorting een idee? --> CMIIR = Correct Me If I'm Rong
MichielPH
Nieuwe afkorting een idee? --> CMIIR = Correct Me If I'm Rong
MichielPH
Nieuwe afkorting een idee? --> CMIIR = Correct Me If I'm Rong
*D'oh*
[Bericht gewijzigd door MichielPH op ]
ik weet niet of ik je helemaal begrijp: ik draai het demo programma.. connect en draai dan bijv de output test alles loopt prima Dan sluit ik het demo programma af en probeer vanuit mijn code te connecten.
MichielPH
Nieuwe afkorting een idee? --> CMIIR = Correct Me If I'm Rong
De kaart kan maar met 1 programma verbinding hebben, dacht ik. Als jij het demoprogramma afsluit is de verbinding verbroken, dus is dit het probleem niet.
XP doet nogal eens moeilijk met poorten, maar aangezien het demoprogramma het wel doet, is dit ook het probleem niet.
Micheil,
Dit draait:
-------------------------------------------------------
Dim i As Long
Private Declare Function OpenDevice Lib "K8055D.dll" (ByVal CardAddress As Long) As Long
Private Declare Sub CloseDevice Lib "K8055D.dll" ()
Private Declare Function ReadAnalogChannel Lib "K8055D.dll" (ByVal Channel As Long) As Long
Private Declare Sub ReadAllAnalog Lib "K8055D.dll" (Data1 As Long, Data2 As Long)
Private Declare Sub OutputAnalogChannel Lib "K8055D.dll" (ByVal Channel As Long, ByVal Data As Long)
Private Declare Sub OutputAllAnalog Lib "K8055D.dll" (ByVal Data1 As Long, ByVal Data2 As Long)
Private Declare Sub ClearAnalogChannel Lib "K8055D.dll" (ByVal Channel As Long)
Private Declare Sub SetAllAnalog Lib "K8055D.dll" ()
Private Declare Sub ClearAllAnalog Lib "K8055D.dll" ()
Private Declare Sub SetAnalogChannel Lib "K8055D.dll" (ByVal Channel As Long)
Private Declare Sub WriteAllDigital Lib "K8055D.dll" (ByVal Data As Long)
Private Declare Sub ClearDigitalChannel Lib "K8055D.dll" (ByVal Channel As Long)
Private Declare Sub ClearAllDigital Lib "K8055D.dll" ()
Private Declare Sub SetDigitalChannel Lib "K8055D.dll" (ByVal Channel As Long)
Private Declare Sub SetAllDigital Lib "K8055D.dll" ()
Private Declare Function ReadDigitalChannel Lib "K8055D.dll" (ByVal Channel As Long) As Boolean
Private Declare Function ReadAllDigital Lib "K8055D.dll" () As Long
Private Declare Function ReadCounter Lib "K8055D.dll" (ByVal CounterNr As Long) As Long
Private Declare Sub ResetCounter Lib "K8055D.dll" (ByVal CounterNr As Long)
Private Declare Sub SetCounterDebounceTime Lib "K8055D.dll" (ByVal CounterNr As Long, ByVal DebounceTime As Long)
Public Sub test1()
Dim v1 As Long
v1 = OpenDevice(0)
MsgBox ("Card :" & v1)
ClearAllDigital
ClearAllAnalog
SetAllDigital
MsgBox ("SetAllDigital")
ClearAllDigital
MsgBox ("ClearAllDigital")
SetDigitalChannel (2)
MsgBox ("SetDigitalChannel (2)")
v1 = ReadAnalogChannel(1)
MsgBox ("Analog(1) :" & v1)
SetAllAnalog
MsgBox ("SetAllAnalog")
ClearAnalogChannel (2)
MsgBox ("ClearAnalogChannel (2)")
For i = 1 To 255
WriteAllDigital (i)
'/ OutputAnalogChannel(1, 222) << werkt niet ?
'/ OutputAnalogChannel(2, 137) << werkt niet ?
Next
MsgBox ("Ready")
ClearAllDigital
ClearAllAnalog
MsgBox ("all closed") '<< op dit moment brandt het PMW1 ledje / LD9 nog steeds
End Sub
---------------------------------
zoals je ziet nog wel wat rare zaken, die post ik even in een aparte topic..
Dank voor t meedenken nog.
MichielPH
Nieuwe afkorting een idee? --> CMIIR = Correct Me If I'm Rong
Ghehe, zo werd ik laatst ook in de palace genoemd.. Laten we hopen dat dit een typfout is.
Al programmeer ik zelf in Delphi (blame my school), zie ik niets vreemds eigenlijk. Was het demoprogramma al een .exe, of heb je die elf gecompileerd?
Michiel ,
don't worry.. een typo.. freudiaans wellicht... 
de demo app was een exe die kant en klaar werd aangeleverd in het doosje...