- fchao-Sinus-Wechselrichter AliExpress         
Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 31

Thema: K8055 USB Board mit C++ Konsolenanwendung

  1. #1

    K8055 USB Board mit C++ Konsolenanwendung

    Anzeige

    LiFePo4 Akku selber bauen - Video
    so das hier wird also mein erster Beitrag, ich hab mir vor wenigen Tagen von Velleman das K8055 USB Board zugelegt. Leider existieren nur dokus zu Borland C++ Builder und Beispiele für Visual C.Net. Ich hab das ganze mal ein wenig vereinfacht so das man das board auch mit einer konsolenanwendung benutzen kann wenn man erst mal aus der mfc demo alles rausgesucht hat was irgendwie zu den fenster gehört wird das ganze plötzlich ganz einfach. Anbei die Source zu einem programm was den analogport abfragt und den eingelesen wert in der konsole ausgibt eun anschließend an den 8 Bit Digital Port weiterleitet. der rest ist in der source beschrieben. hoffe es ist halbwegs verständlich. programmiere selber erst seid 2 Monaten mit cpp.
    Also ich hoffe ich konnte jemanden helfen damit

    [color=#0051ff]// einfache Konsolenanwendung für die K8055 Karte von Velleman
    // datei K8055d.h und K8055_VC.lib von der velleman seite
    // K8055_MFC_NET2.zip <- besser als Datei auf CD ist wenigsten dokumentiert

    #include "K8055D.h" //muss sich im Projektverzeichniss befinden
    #pragma comment (lib, "K8055D_VC.lib") //muss sich im Projektverzeichniss befinden
    #include <iostream> //wichtige include für standard ein- und ausgabe in der Konsole

    using namespace std; //muss sein macht die sache einfacher von cout u.s.w.

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

    long a;

    // die Schleife wird solange bearbeitet wie der Anlogwert größer 1
    do{
    a=ReadAnalogChannel(1); // Lese analogwert von Eingang 1
    cout << a << endl; // gebe Wert in der Konsole aus
    WriteAllDigital(a); // gebe Wert am Digitalausgang aus
    }while (a > 1); // solange wiederholen wie anawert größer 1

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

    return 0;
    }

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    07.04.2005
    Beiträge
    19
    servus!

    falls du das Visual Studio mit VC in irgendeiner form zu verfügung hast, dann benutz lieber einen dialog zum rumspielen mit dem board als ein konsolenprogramm. mit einem dialog bist du flexibler.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    17.02.2005
    Beiträge
    6
    Hallo, super endlich habe ich das Board mit einem eigenem Progi ansteuern könne. Die K8055D_VC.lib war auf der CD zum Board gar nicht dabei, und nach dem ich noch alle DLLs von der Velleman Page heruntergeladen und installiert hatte, hats dann endlich funktioniert. Das einzige Problem ist, dass manchmal die 8 Digitalports unsauber schalten, die LEDs gehen manchmal beim einschalten an einem anderen Port aus, oder ein Port weiter schaltet auch eins ein. Hast du dieses Problem auch? Auf jede fall herzlichen dank für deinen Beitrag, hat mir sehr weitergeholfen. \/

  4. #4
    Das Problem habe ich bis jetzt noch nicht beobachtet.
    *sicheres auftreten trotz völliger ahnungslosigkeit *
    *starke behauptungen sind besser als schwache vermutung*

  5. #5
    so ich hab das ganze jetzt noch mal getetest, es scheint so als würde es probleme geben wenn das device nicht geschlossen wird "CloseDevice();" was bei einem unerwarteten Programmabruch vorkommen kann, mein Rekord sind 28 Geöffnete Karten hab mich beim letzten versuch etwas vertan. aber bereits bei einem laufenden device treiber kommt es zu problemen. werde demnächst ein neues programm posten.
    *sicheres auftreten trotz völliger ahnungslosigkeit *
    *starke behauptungen sind besser als schwache vermutung*

  6. #6
    Neuer Benutzer
    Registriert seit
    07.05.2005
    Ort
    Aachen
    Beiträge
    3

    Compilerfehler

    @Worstcase: Danke erstmal für die Infos. Das Programm ist echt gut abgespeckt und übersichtlich. Komischerweise funktioniert es bei mir trotzdem nicht.
    Beim compilieren bekomme ich immer einen fehler, sobald der Header K8055D.h eingelesen wird. Der Compiler sagt dann "expected constructor, destructor, or type conversion before ';' token". Ich benutze den Dev-C++ Compiler. Hast du vielleicht eine Ahnung, woran das liegen könnte?

  7. #7

    Leider nein

    ich habe das programm im ms vs6 geschrieben, möglicherweise liegt es ja an deinem compiler. koomentier doch einfach mal zeile für zeile aus. ich könnte mir vorstellen das das problem ganz am anfang mit pragme anweisung liegt, ist soweit ich bis jetzt durchgestiegen bin eine compiler direktive möglicherweise ist das ja visual studio only und bei deinem compiler geht das anders.

    gruß
    thorsten
    *sicheres auftreten trotz völliger ahnungslosigkeit *
    *starke behauptungen sind besser als schwache vermutung*

  8. #8
    Neuer Benutzer
    Registriert seit
    07.05.2005
    Ort
    Aachen
    Beiträge
    3

    tatsache!

    stimmt. Es liegt wirklich an dem Compiler. Habe MS VS installiert und jetzt geht's. Hab allerdings noch nicht herausgefunden, mit welcher Anweisung der Dev-C++ die Probleme hatte. Komischerweise lässt sich das Programm jetzt übersetzen, liefert aber einen Laufzeitfehler, sobald ich die Funktion OpenDevice() starte ("Die Ordnungszahl 21 wurde in der DLL "K8055D.dll" nicht gefunden").
    Soweit ich weiss sollte der Befehl
    "#define FUNCTION __declspec(dllimport)"
    in der K8055D.h dafür sorgen, dass die Funktionen in der DLL mit dem Namen und nicht mit einer Nummer aufgerufen werden.
    Weiss jemand von euch woher der Fehler kommt?

  9. #9
    Hi,

    das Problem besteht nicht mehr, sobald du die alte "K8055D.dll" durch die dll ersetzt welche in diesem Archiv enthalten ist: K8055_MFC_NET2.zip

    Ich habs gemacht, und es läuft anstandslos!


    MFG Georg

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    09.08.2005
    Beiträge
    5
    hat das mal jemand in java eingebunden, kann die dll zwar anstandslos laden, aber mein prog fliegt raus sobald ich OpenDevive(long adr) aufrufe. habs auch mit c sharp getestet, da kann ich sie laden und auch connecten, bekomme aber ganz misteriöse werte wenn ich zum beispiel den analog eingang auslese. wenn ich das c# prog dann schliesse gibts auch immer nen ausnahmefehler an addresse xyz...


    hoffe mir kann einer mit dem java problem weiterhelfen, vielen dank, mulder!

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen