PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : K8055 USB Board C++



Pröbler
17.02.2005, 21:40
Hallo
Ich habe ein K8055 USB Interface Board und möchte dieses mit C++ ansprechen. Meine Programmierkenntnisse sind noch nicht sehr gross, bis jetzt habe ich nur kleine Konsolenanwendungen gemacht, ich arbeite mit Visual C++.net. Ein Beispielprogramm in C++ konnte ich in Visual C++ laden und laufen lassen. Das ganze ist jedoch mit seinen vielen Dateien so komplex das ich einfach nicht durchblicke. Die Dokumentation habe ich auch studiert, ich bekomme jedoch nichts zum laufen. Hat jemand von euch schon Erfahrungen mit dem Bord gemacht und kann mir einfach erklären welche Header-Dateien ich einbinden muss, was ich mit der Library machen muss und mit welchen Befehl ich die Karte öffnen muss und wie ich einen Digitalport ein und wieder ausschalten kann.
Wäre ganz toll wenn mir jemand von euch weiter helfen könnte, ich habe schon etliche Stunden damit verbracht.
Herzlichen Dank Martin

Anduze
24.02.2005, 17:13
Da bist du ja schon weiter wie ich :)
Ich bin da auch grad dran, benutzte allerdings Microsoft Visual C++ 6.0
Meine C-Kenntnisse sind auch gut null und irgendwie läuft noch net mal das Beispielprogramm. Ständig kommen Linker-Fehlermeldungen. Aber ich geb net auf...

24.02.2005, 21:24
Hallo, in der readme-Datei steht dass das Progi in VC++ geschrieben wurde. Wahrscheinlich läufts bei dir darum nicht.

24.02.2005, 21:29
Nachtra: ich meinte VC++.net

Anduze
26.02.2005, 14:19
Das hab ich mir auch schon gedacht, mittlerweile hab ich das auch aufgegeben. Hätte nie gedacht, dass es innerhalb einer Programmiersprache doch so große Unterschiede gibt! Entweder hol ich mir jetzt VC++.net oder ich versuch die .dll irgendwie selbst einzubinden.
Die dlls sind dann aber schon für VC++ 6.0 geeignet, oder?

netfocus99
04.03.2005, 08:14
Das hab ich mir auch schon gedacht, mittlerweile hab ich das auch aufgegeben. Hätte nie gedacht, dass es innerhalb einer Programmiersprache doch so große Unterschiede gibt! Entweder hol ich mir jetzt VC++.net oder ich versuch die .dll irgendwie selbst einzubinden.
Die dlls sind dann aber schon für VC++ 6.0 geeignet, oder?Bei mir läufts unter VC6.0 - Einfach mit dem Wizard ein leeres MFC-DLG-Project "k8055_test" erzeugen (Projekt jetzt schliessen), alle .cpp und .h ins neue Verzeichnis (unterverzeichnis Ressource nicht vergessen) kopieren (damit die leeren cpps und hs überscheiben) und noch die Dialog-Ressoucen aus dem .net rc-File händisch in das vc6-File übertragen (copy paste).

Projekt wieder öffnen, mit Dialog-Editor noch die Geometrie des Dialogs überprüfen und kompilieren. Läuft ....

Anduze
05.03.2005, 10:23
Muss ich gleich mal ausprobieren!
Vielen Dank!

tpetter
20.04.2005, 21:57
Hallo!
Ich beschäftige mich mit dem K8055 USB Interface Board und möchte ein eigenes Programm in MS Visual C++ 6.0 schreiben. Kann mir jemand vielleicht ein lauffähiges C++ für den K8055 schicken?
tpetter@web.de

Pröbler
21.04.2005, 08:22
Hallo, lade dir die beiden Zip-Dateien von www.velleman.be K8055D_DLL_update_Rev2 und K8055D_DLL_update_Rev2 herunter. Kopiere die 6 DLLs ins Verzeichnis SYSTEM32 und Kopiere die K8055D_VC.lib in dein Projektverzeichnis.


#include "K8055D.h" //muss sich im Projektverzeichniss befinden
#pragma comment (lib, "K8055D_VC.lib") //muss sich im Projektverzeichniss befinden
#include <iostream>
#include <windows.h> //für Pausenbefehl Sleep
using namespace std;

int main ()
{
OpenDevice(0); // Karte mit der Adresse 0 öffnen

SetDigitalChannel(1); //erster Port ein, 1500 ms Pause
Sleep(1500);
SetDigitalChannel(2);//zweiter Port ein
Sleep(1500);
SetDigitalChannel(3);// dritter Port etc.
Sleep(1500);
SetDigitalChannel(4);
Sleep(1500);
SetDigitalChannel(5);
Sleep(1500);
SetDigitalChannel(6);
Sleep(1500);
SetDigitalChannel(7);
Sleep(1500);
SetDigitalChannel(8);
Sleep(1500);

ClearAllDigital(); //alle Ausgänge auf 0
CloseDevice(); // Karte schließen

return 0;
}


Sonst schau dir noch den Beitrag K8055 USB Board mit C++ Konsolenanwendung von Worstcase im Forum an, der hat mir sehr geholfen. Der Code läuft auf MS Visual C++ 6.0 und NET.

tpetter
22.04.2005, 08:04
Hallo!

Vielen Dank für die schnelle Antwort! Es hat geklappt!
Du hast mir sehr weitergeholfen!
Super Forum!

Gruß!

Thorsten

masterchiefsupervisor
05.11.2005, 13:49
ich hab auch ein problem mit dem k8055
ich habe die cd durchsucht und auch im netz auf der velleman hp gesucht ich finde die datei K8055D_VC.lib nicht kann mir irgendwer bitte per mail schicken phz@gmx.at
danke!!!!

PS: sind die .h files auch für c verwendbar??

salocinx
06.01.2006, 19:44
Habe dasselbe Problem. Die Velleman Seite ist nicht gerade übersichtlich. Könnte mir jemand von euch die "K8055D_VC.lib" an folgende email senden 'salocinx@hotmail.com' ?

Vielen Dank, Grüsse salocinx!

Menrothan
28.10.2010, 18:57
Hi

Ich weis da thema ist alt, aber ich würde mit dem Board etwas hilfe benötigen.
Hab dieses letztens geschenkt bekommen und nur in der ecke liegen lassen
will ich es natürlich nicht sondern es benutzen nur kenn mich halt mit dem
nicht aus.
Also was ich brauch, also dateien programme usw und vll auch paar beispiele.

Grüße
Peter

SIGINT
30.10.2010, 16:44
Hallo Peter,
erstmal eine Frage: Welche Programmiersprache beherrschst du?
Hast du noch keine Ahnung, wie man Libs einsetzt, dann mach dich erstmal damit vertraut. Der Rest steht eigentlich auf der Webseite von Vellemann (inklusive Beispiele). Das K8055 ist eigentlich sehr schön und einfach zu nutzen.

Gruß, SIGINT

Menrothan
30.10.2010, 19:04
kenne mich mit c++ und vb.
habe vc++ derweil auf dem pc drauf nur weis ich net wo welche datei hin gehört bzw bin ich in beiden progsprachen eingerostet und sowas mit libs
mach ich eigentlich zum ersten mal, wenn ich mich nicht irre

grüße
Peter

SIGINT
31.10.2010, 08:45
Gut.... MSVC++ und VB sind ja schon Sprachen, die von Haus aus von Vellemann unterstüzt werden. Dafür gibt es auch Beispiele.
Hier erstmal der Link zur Supportseite :
http://www.velleman.eu/distributor/support/downloads/?code=k8055&type=

Dort findest du einen Link auf "Software DLL Rev 2"... das ist die DLL und Beispiele in VC++ und weiter unten findet sich einen Link auf ein Beispiel in VB.

Erstmal zu MSVC++:
Im Ordner "VC++ Projekt" findest du alles was du benötigst.
Hier findest du die DLL, die Importlibrary (K8055_D.lib), die Headerdatei (K8055_C.h) und die Dateien vom Beispielprojekt. Wenn du ein neues Projekt erstellst, dann musst du nur die Header und die Importlib in dein Projekt einbinden. Die DLL benötigst du nur zum starten des fertigen Programms. Ich hab schon sehr lange nichts mehr mit MSVC++ gemacht... kann deshalb nicht sagen,wie das bei den neuen Versionen genau geht. Und ganz wichtig: Bei .NET muss beachtet werden, daß es sich hier um unmanaged code handelt. Wie man den genau nutzt kann ich leider nicht sagen.

Zu VB:
Bei VB ist alles relativ einfach. Du musst VB nur sagen, welche Funktionen sich in der DLL befinden. Dann kannst du diese Funktionen direkt nutzen.

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)


Das sind einfache Subfunktions-Deklarationen, die auf die DLL verweisen.

Allgemeines Vorgehen beim K8055 - Board:
Zuerst musst du den Kommunikationkanal zum Board öffnen.
Das kannst du mit OpenDevice(adresse) machen. Danach kannst du auf das Board zugreifen, wenn alles funktioniert hat. Genaue Infos zu den Funktionen finden sich in der Doku auf der Vellemann-Seite.

Ich hoffe, ich konnte etwas Helfen.

Gruß,
SIGINT

P.S.: Anbei noch ein Beispiel für Excel.

Menrothan
31.10.2010, 11:22
Hi

Danke dir hab da immer das ganze mit denn dll und vor allem windows
version verpfuscht gehabt. bin erst gestern drauf gekommen, dass die dll's kein 64 bit windows mögen und vor allem kein win 7.
Aber das ist kein prob zweit lapi rennt mit xp.
Deine Vorschläge werde ich heute gleich einmal in der nachtschicht ausprobieren.
Und möchte dir schon mal ein großen dankeschön rüberreichen, denn so
schnell gibts sonst nie hilfe.

P.S.: Glaubst du das ich mit den pwm ausgängen schnell genug bin um nen LED cube genau so schnel wie über programmiertem pic
Grüße
Peter

SIGINT
31.10.2010, 15:49
Das K8055 hat eine feste PWM-Frequenz von ca. 24kHz
Ob das reicht, kann ich leider nicht sagen.
Für meine Halogenlampe hat es gereicht X)
Ich glaube du must das einfach testen. Wenn es nicht geht, dann kannst du ja auf den PIC wechseln... oder besser auf einen AVR ;)

Gruß,
SIGINT

Menrothan
31.10.2010, 16:22
derweil laufen ja paar kleine qubes mit nem pic, aber der anreiz an dem board
ist dieser, dass man es ja immer und schnell änderungen an den abläufen vornehmen
kann und nicht immer den pic programmer zurhand nehmen muss

gruß
Peter