- Labornetzteil AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Com1 mit C

  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    Anzeige

    Praxistest und DIY Projekte
    Ich würde das so fern möchglich mal mit zwei PC's Testen. den du hast jetzt das Problem das du zwei mal eigene Software hast und so nicht aus schließen kannst wo das problem ligt senden oder empfangen. also einfach mal eine Drei draht verbindung zwischen zwei PC's machen und auf einer seite ein Terminal Programm laufen lassen.

    Oder sende mir die exe und ich probiere es hier mal aus kann aber dauern habe im moment nicht so viel zeit.

    @Robocat:
    https://www.roboternetz.de/phpBB2/vi...=388684#388684
    den habe ich mal eröffnet nicht das diese Thread 2 Themen hat.
    Sicher die position durch ein Array zu jagen währe möcglich ist das aber elegant ? Bitte in dem Anderen Thread anworten.

    Gruß
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    So anbei das Einfaches Programm um drei Byt per RS232 raus zu schreiben einfach geht es Glaube ich nicht. Fehlerfängen sind nur Kommentare.

    Code:
    #include "stdafx.h"
    
    HANDLE g_hCom = INVALID_HANDLE_VALUE; // Variable in der das Handle für den Port ist
    
    static const char *CP[]={"COM1","COM2","COM3","COM4","COM5","COM6"};
    
    bool OpenRS232(int portnr,long baud, char bytes, char parity, char stopbit);
    void SetServoPos(BYTE nServoNr,BYTE nServoPos);
    
    int main(int argc, char* argv[])
    {
    	// Hauptroutine
    	// Com1 mit 9600,8,N,1
    	if(OpenRS232(0,9600,8,NOPARITY,ONESTOPBIT))
    	{
    		SetServoPos(7,254); // 7. Servo ganz rechts
    
    		Sleep(200); //Warten 200 milisec
    
    		SetServoPos(7,0); // 7. Servo ganz links
    		//RS232 Port wieder Frei geben.
    		CloseHandle(g_hCom);
    	}
    	else
    	{
    		//Fehler beim Öffnen des Ports.
    	}
    	return 0;
    }
    
    bool OpenRS232(int portnr,long baud, char bytes, char parity, char stopbit)
    {
    	DCB dcb; // Konfig Strucktur RS232 unter windows
    	BOOL res = false;
    
    	g_hCom = CreateFile(CP[portnr], GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
    
    	if(g_hCom==INVALID_HANDLE_VALUE)
    	{
    		// Kann den Port nicht Öffnen
    		return false;
    	}
    
    	// Aktuelle Konfig auslesen
    	res=GetCommState(g_hCom, &dcb);
    	if(!res)
    	{
    		// Da ist was schief gegangen
    		return false;
    	}
    
    	// Werte Ändern
    	dcb.fBinary     = TRUE;
    	dcb.BaudRate	= baud;
    	dcb.ByteSize	= bytes;
    	dcb.Parity		= parity;
    	dcb.StopBits	= stopbit;
    	dcb.fParity		= (dcb.Parity != NOPARITY);
    
    	// Konfig schreiben
    	res=SetCommState(g_hCom, &dcb);
    	if(!res)
    	{
    		// Da ist was schief gegangen
    		return false;
    	}
    	return true;
    }
    
    void SetServoPos(BYTE nServoNr,BYTE nServoPos)
    {
    	BYTE ServoBefehl[3];
    	ServoBefehl[0] = 255;
    	ServoBefehl[1] = nServoNr;
    	ServoBefehl[2] = nServoPos;
    
    	unsigned long sendet = 0;
    
    	if(!WriteFile(g_hCom, &ServoBefehl[0], 3, &sendet, NULL))
    	{
    		//Fehler bei Schreiben auf dem Port
    	}
    	if(sendet != 3)
    	{
    		// Nicht alle Bytes geschrieben
    	}
    }
    die Zeile #include "stdafx.h" muss eventuell durch #include <windows.h> ersetzt werden. Dann sollte sich das Teil mit jedem Compiler übersetzen lassen.

    Funktion:
    Öffen der RS232 (COM1) und dann Dreibyt senden und nach 200 Millisek wieder drei byte und dann RS232 Freigeben.

    Gruß
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    Anbei das Dev-C++ Projekt.

    Aber irgend wie ist die entstehen exe ganz schön groß ok mit dem GCC kenne ich mich nicht aus.

    Gruß
    Angehängte Dateien Angehängte Dateien
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  4. #14
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.10.2004
    Ort
    Bad Harzburg
    Alter
    36
    Beiträge
    302
    Irgendwie lässt sich leider das Programm nicht copilieren. Zeigt ne ganze reihe an fehlern auf. Werd mich morgen nochmal näher damit beschäftigen.
    Danke für deine hilfe.

    MfG Jan

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    Hä ? das habe ich mit Dev -C++ kompliert. du Arbeits doch unter windows oder ? Welche version von Dev- C++ welche meldungen kommen den ?

    Gruß
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  6. #16
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    Gestern Abend habe wir das Problem gefunden Compiler neu Installation und dann konnte er den Source Kompilieren. war wohl ein drucheinander bei den Header.

    Gruß
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Solar Speicher und Akkus Tests