-
        

Seite 1 von 6 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 52

Thema: C++ Programm zum ansteuern von Schrittmotoren

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    04.07.2005
    Ort
    Ruhrgebiet
    Alter
    35
    Beiträge
    41

    C++ Programm zum ansteuern von Schrittmotoren

    Anzeige

    Hallo zusammen kann mir jemand vielleicht helfen und zwar möchte ich über c++ Borland Builder ein Programm zum ansteuern von mehreren Motoren oder Schrittmotoren schreiben.Das grundlegende Wissen zum Programmieren
    einfacher Programme habe ich, leider weiss ich nicht wie und was ich über c ++ ansteuern soll um Spannungspegeel herrauszubekommen aus meinem PC.
    Auf http://www.skilltronics.de/ unter Elektronik am PC gibt es wunderbare Schaltungen leider weiß ich nicht wie ich Sie ansprechen soll kann mir da jemand weiterhelfen?

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    43
    Beiträge
    1.517
    Du brauchst immer eletronik dazwischen du kannst kein Motoreinfach an den PC hängen.

    http://www.robotikhardware.de/motoransteuerung.html

    Das ist was du Brauchst. wie du die RS232 (Serial) programmierst finden auch hier im forum einfach suchen benutzen.

    Gruß
    Home
    P: Meine Tochter (06.11.07) und Link
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  3. #3
    Gast
    Ich werd mal rumgucken danke vorrerst für deinen Tipp.Das mit der Elektronik ist verständlich will mein Rechner ja nicht abschießen mir gings halt darum wie ich überhaubt harware ansprechen kann um weiter arbeiten zu können.

  4. #4
    Gast
    Ich denke was du lernen mußt ist wie Programmiere ich die RS232 Schnittstelle. das ist bei den meisten hier die Komunikation zwischen hardware und software (PC). Die Parallele währe auch noch eine Möglichkeit
    wird aber selten genutzt weil noch komplexer.

    Gruß

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    04.07.2005
    Ort
    Ruhrgebiet
    Alter
    35
    Beiträge
    41
    wie spreche ich aber die RS232 Schnittstelle an?das ist mein großes Problem mit der Parallelen LPT1 Schnittstelle habe ich es Herausgefunden aber jetzt habe ich ein Problem mit dem Treiber der den zugriff unter XP auf Hardware erlauben soll.Habe diesen Treiber von http://www.b-kainka.de/portnt.htm "Inpout32.dll" wie beschrieben (Just copy the Inpout32.dll to "system32" directory and run the program.") in meinen System32 Ordner Kopiert Leider erkennt mein C++ programm es nicht bekomme diese Fehlermeldung
    ----E2209 include Datei "inpout32.cpp" kann nicht geöffnet werden------

    #include <vcl.h>
    #pragma hdrstop
    #include "inpout32.cpp"
    #include "Ulpt.h
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;

    Habe das im Kopf geschrieben.Benutze den c++ Borland Builder 5

  6. #6
    Gast
    "inpout32.cpp" ?

    #include "inpout32.cpp" ?

    Vieleicht solltest Du Dich zuerst mit den C/C++-Grundlagen vertraut machen?

    Du brauchst die DLL, eine passende Header-Datei, die die Funktionsaufrufe enthält und mußt die DLL im Programm auch laden ("LoadLibrary (...);").
    Dann funktionierts.

    Blackbird

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    04.07.2005
    Ort
    Ruhrgebiet
    Alter
    35
    Beiträge
    41
    #include inpout32.cpp ich will diesen Treiber mit einbeziehen.
    Ich hatte c++ nur ein Jahr erst Konsolen anwendung dann GUI aber da nur einfache Programmierung.Was kann ich mit Load Library machen?Das Kkann doch nicht so schwer sein ein LPT 1 port anzusprechen?

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    07.07.2004
    Ort
    um Berlin
    Beiträge
    346
    Das Kkann doch nicht so schwer sein ein LPT 1 port anzusprechen?
    http://www.logix4u.cjb.net/ und dann "How Inpout32.dll works ?
    " anklicken ...
    Damit nicht jeden diesen steinigen Weg gehen muß, gibt es eben (u.a.) die inpout32.dll, die man aber auch richtig benutzen muß:
    Unter "Inpout32.dll for WIN NT/2000/XP" (gleiche HP) ist nach dem Punkt 7. unter der Überschrift "Solution" ein sample program ("Click here") angegeben ("... source code for TEST.C ..."), welches die Vorgehensweise in einem C-Programm zeigt.
    #include inpout32.cpp ich will diesen Treiber mit einbeziehen.
    inpout32.cpp ist doch ein C-Source-File, kein Treiber. Und inpout32.cpp hast Du doch nirgendwo.
    Was kann ich mit Load Library machen?
    Na den Treiber laden. Der, der in der DLL "drin" steckt.

    Blackbird

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    04.07.2005
    Ort
    Ruhrgebiet
    Alter
    35
    Beiträge
    41
    Aber das ich diese C-Source File mit einbeziehe in mein Programm ist doch richtig oder?Wie bekomme ich jetzt den Treiber aus der DLL Datei?mit diesem LoadLibrary?

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    43
    Beiträge
    1.517
    Also ich muß hier doch mal was klar stellen.

    Eine DLL ist kein Treiber

    Eine DLL sind aus gelager Funktionen die man auf rufen kann.

    #include "inpout32.cpp"

    wir nie Tun man kann keine cpp dateien include sondern nur header sprich .h dateien.

    Wie komme ich an funktionen einer dll:

    Es gibt zwei möglichkeiten dynamisch oder statisch.
    Die Statische ist das Header file einbinden "incude...."
    Und dem linker dann das entsprechende lib file angeben.

    Problem an dieser metode ist das das programm bei nicht da sein der
    dll einfach nicht starten und man nicht darauf reagieren kann und man das h und das lib file braucht

    das dynamische laden:

    Code:
    extern "C"
    {
    	typedef long (__stdcall *Cherry_Data)(PKBVCardRecord);
    	typedef long (__stdcall *Cherry_Init)(void);
    	typedef void (__stdcall *Cherry_Close)(void);
    	typedef long (__stdcall *Cherry_GetErrorDesc)(long,LPSTR,long);
    }
    Erzeugen der Funktions Typen

    Code:
    Cherry_Init         G801501_Init;
    Cherry_Close        G801501_Close;
    Cherry_Data         G801501_ReadCardRecord;
    Cherry_GetErrorDesc G801501_GetErrorDesc;
    Erzeugen von Funktionspointer

    Code:
    	m_hCherryDll = LoadLibrary("G8015012.dll");
    
    	if (m_hCherryDll != NULL)
    	{
    		G801501_Init =  (Cherry_Init) GetProcAddress(m_hCherryDll, "G801501_Init");
    		G801501_Close =  (Cherry_Close) GetProcAddress(m_hCherryDll, "G801501_Close");
    		G801501_ReadCardRecord =  (Cherry_Data) GetProcAddress(m_hCherryDll, "G801501_ReadCardRecord");
    		G801501_GetErrorDesc =  (Cherry_GetErrorDesc) GetProcAddress(m_hCherryDll, "G801501_GetErrorDesc");
    		if (NULL != G801501_Init)
            {
    Zuweisen der Funktionspointer zu den adressen in der dll.

    Code:
    long result = G801501_ReadCardRecord(&CardRecord);
    Funktionsaufruf

    Das beispiel beruht nicht auf der InpOut.dll sonder einer ander der Code war halt gerade greifbar.

    Die Dll installiert einen Treiber bei NT Systemen also wird die nur laufen wenn man genung rechte auf dem system hat.

    Aufpassen mit der Dll kannst im ganzen Io bereich von windows rum schreiben. das heist richtig müll machen (BlueScreen)

    Den die DLL tricks den HAL aus.

    Wenn du normale Serial komunikation machen willst und nicht den Parallel port Leitungsweise ansteuern willst brauchst du die dll nicht.

    Was hast du genau vor.

    Gruß
    Home
    P: Meine Tochter (06.11.07) und Link
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

Seite 1 von 6 123 ... LetzteLetzte

Berechtigungen

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