Hallo, Ich versuche Daten mit einem Mega32 über einen Max232 an einen PC zu senden. Mit Hyperterminal klappt das wunderbar.Nur ist mir das zu umständlich, da ich die empfangenen Daten anschließend noch in C bearbeiten möchte. Leider leider haben wir in der Schule die serielle Schnittstelle nicht programmiert, weswegen ich sozusagen "auf dem Schlauch" stehe. Bei einer Suche im Web stoße ich lediglich auf Programme in c++, von denen ich nicht viel verstehe. Hat vielleicht jemand schon einmal ein derartiges, kleines Programm geschrieben? Oder Hinweise, wie man das Problem lösen könnte? Vielen Dank im Voraus. Tschaui Sascha
Dass C nicht die beste Wahl ist, glaube ich gern - aber leider die einzige Sprache, die in den Grundzügen verstehe... ;)
In C unter Windows musst du seitens des Windows-API ein paar Klimmzüge machen: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp (Gefunden über http://www.lvr.com/serport.htm ) Daher wurden für den gemeinen Programmierer Libaries entwickelt. Vielleicht C++ kann man solche Libraries besonders schön entwickeln? Jedenfalls gibt es eine grosse Anzahl von C++-Libraries für die serielle Kommunikation.
Was soll denn bitte so schwer daran sein, die serielle Schnittstelle und C zu verwenden?! Zuerst musst du den Com-Port Konfigurieren und öffnen mit :OpenComConifg. Danach brauchst du noch die Befehle: ComWrt(); //Eine Anzahl von Bytes hinausschreiben ComWrtByte(); // Byte hinausschreiben FlushInQ(); //Buffer löschen ComRdTerm(); //Daten einlesen Und zum schluss musst du den Port wieder schliessen: CloseDev(); So und wo soll nun da Problem sein? Ich muss sagen, ich habe einen Trafoprüfstand über die RS232-Schnittstelle gebaut... und hatte nicht wirklich Problem damit.... und das ganze ist in C geschrieben ;-) mfg Schoasch
Vielen Dank. Ich denke mit den Infos kann ich schon mal loslegen. ;)
@Schoach Die von Dir aufgeführten Funktionen gehören aber nicht zum Win-API!
@Sascha Es geht auch einfacher. Schau Dir mal dieses Programm an: http://realterm.sourceforge.net/ "capture to file, settable capture size or capture duration" Gruss Dmitri
Du kannst das ganze mit LabWindows CVI 8.0 realisieren, dann kannst auch eine g'scheite Oberfläche ausprogrammieren. Die Handhabung der Software ist relativ einfach mit sehr geringer Einarbeitungszeit. Außerdem wird in C programmiert und du hast eine große Auswahl an fertigen Funktionen, unter anderem auch diese, die Schoasch erwähnt. Und so könnte es beispielsweise aussehen... http://www.poms-engineering.at/images/projects_climate_logger_main_panel_windows_software.gif
>Bei einer Suche im Web stoße ich lediglich auf Programme in c++, von >denen ich nicht viel verstehe. >...Oder Hinweise, wie man das Problem lösen könnte? Deine Fähigkeiten zur Recherche im Internet verbessern. In diesem Forum ist dies jede Woche Thema in "PC-Programmierung" Ansonsten schau in der MSDN nach Thema "CreateFile" oder "Serial Port" Da gibt es einen Artikel "Serial Communications in Win32"
Hallo, Da ich keinen Ansatz hatte, viel mir die Suche tatsächlich schwer. Mein Hauptanliegen ist es, die mit dem Mega32 ermittelten Werte in eine Excel Tabelle zu implementieren. In C hätte ich die Zeichenfolge notfalls sortiert, mit entsprechenden Erklärungstexten versehen und dann zweispaltig ausgedruckt. Das wäre wie gesagt die Notlösung für mein Problem, das ich in der Excel-programmierung auch nicht firm bin. Das Programm, welches Dmitri empfiehlt scheint für mich geeignet. Aus den angegebenen Funktionen lässt sich bestimmt das Notwendige für meine Zwecke ermitteln. Meld mich, sobald ich etwas hinbekommen habe. ;) Vielen Dank erstmal!
Hallo, in der Codesammlung findest ein Beispiel (Voltmeter Excel9 zum ansprechen der RS232 Schnittstelle. Du brauchst nur ein bischen das Makro anpassen und kannst deine Werte in Tabelle speichern. Gruß, Dirk
>Mein Hauptanliegen ist es, die mit dem Mega32 ermittelten Werte in eine >Excel Tabelle zu implementieren. Die serielle Schnittstelle kann man unter Excel per VBA direkt ansprechen. Dazu braucht man "nur" das MSCOMM-Dingsbums (OCX?). Mehr dazu findet man unter www.activevb.de oder anderen vb-Hilfeseiten/-Foren. "+excel +rs232" könnte bei google auch ein paar Treffer hervorbringen...
Wenn die Daten in Excel gespeichert werden sollen, dann bietet sich schon das MSComm-Controll und VBA (die "Makro-Sprache" von MSOffice) an. In C/C++ (nicht objektorientiert!) geht es recht einfach mit der WinAPI. Nur muß man den Programmaufbau eben auf asynchrone Events (nichts anderes ist der Empfang eines oder mehrerer Zeichen über die serielle Schnittstelle) ausrichten. RxD (vom COM-Port) kann man "pollen" oder per Event (vom OS) anzeigen lassen. Und spätestens hier sollte man wissen, wie Windows mit Events, Messages usw. umgeht. Aber diese Dinge werden vom MSComm-Control in Verbindung mit der event-orientierten VBA-"Sprache" schon mit erledigt. Blackbird
Alles klar. Dann werde ich das mit Excel direkt probieren. Habt vielen Dank für die vielen und vor allem schnellen Infos! - Dieses Forum hat mich dann wieder einmal gerettet!!! ;) Sascha
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.