Danke =)
Aber abgesehen von den eingefügten Leerzeichen im If/Then Zweig ist das doch das gleiche Programm...Was meinst du damit?
Gruß,
Peter
Danke =)
Aber abgesehen von den eingefügten Leerzeichen im If/Then Zweig ist das doch das gleiche Programm...Was meinst du damit?
Gruß,
Peter
Nein, nein.... =) Ich habe den Code in der Pause von der Firma aus aus dem Kopf abgetippt...Dumm, dass mir so ein Fehler unterlaufen ist..
Das End If ist natürlich mit im Code drin.. Wie gesagt, wenn ein Zeichen vom Terminal-Programm aus (also quasi per Hand) eingetippt wird, dann klappt es danach auch mit dem normalen von mir programmierten C-Programm auf dem Rechner...Bis man dann halt den USB/RS232-Adapter wieder vom Rechner trennt und neu aufsteckt...
Sendet denn ein Terminal-Programm beim ersten Mal eine besondere Zeichenfolge oder eine Art Konfiguration..Weil mein C-Programm sendet ja nur die nackten Bytes...
Morgen früh wollte ich mir mal einen zweiten USB/RS232-Adapter besorgen und dann einmal versuchen zwei virtuelle COM-Schnittstellen an meinem PC einzurichten.
Dann öffne ich zwei Terminal-Programme und sende Daten von dem Einen zum Anderen (COM3 zu COM4) und dann auch mal mit meinem Programm...
Vielleicht gibt mir das Aufklärung...wenn es denn funktioniert mit den USB-Adaptern wie ich das vorhabe...
Es sei denn jemand hat noch eine Idee. Das wäre echt toll...ist aber scheinbar ein Fehler, den scheinbar nur wieder ich habe =)
Oder es liegt an dem Header rs232.h . Aber dann hätten ja schon Andere so ein Problem gehabt...
Klingt als fehlt Deinem Csharp Sender ein EOL?! (0x0d)
Hey,
das EOL-Zeichen wird bei meinem C-Programm gar nicht verwandt, da es ja auch keinen Zeilenumbruch erzeugt.
Was du sagst ist schon richtig, denn wenn das EOL-Zeichen nicht gesendet wird, dann kann auch eine INPUT-Anweisung in Bascom nicht erfüllt werden,
da dieser Befehl auf EOL wartet bis das Programm im Controller weiterläuft. Mit EOL hatte ich also auch anfangs in einem anderen Programm Probleme.
Danke trotzdem für deine Anregung.
Ich habe mir einen zweiten USB/RS232-Adapter besorgt und einmal versucht eine Verbindung aufzubauen.
Vorgehensweise:
-Einstecken beider Adapter in die USB-Ports.
-Mein C-Programm sucht sich selbstständig nach dem Start den ersten freien COM-Port (COM3)
-Im üblichen Windows-Hyperterminal erstelle ich eine Kommunikation über COM4
-Über das C-Programm versende ich ein Zeichen (z.B. 1,2,5,g,d,h,i, usw.) und bestätige die Eingabe mit Enter um scanf zu befriedigen.
-Im Hyperterminal kommt nichts an.
-Ich schließe das C-Programm und öffne das Terminal in Bascom mit Kommunikation über COM3.
-Ich tippe auf der Tastatur auf eine Taste (z.B. 1,2,3, usw.). Bestätigung mit Enter ist hier nicht erforderlich.
-Das Zeichen wird anstandslos im Hyperterminal angezeigt.
-Ich öffne nun mein C-Programm und es wird wie zuvor COM3 erkannt.
-Ich tippe ein Zeichen ein und bestätige die Eingabe mit Enter.
-Das Zeichen erscheint wundervoll in Hyperterminal.
Von nun an funktioniert die Kommunikation wunderbar.
Bis ich dann den Konverter wieder vom USB-Port trenne und neu aufstecke...
Ich stehe immernoch vor einem Rätsel...
Kennt jemand vllt ein Terminal-Programmm, dass auch unsichtbare Zeichen wie z.B. das 0x0d nach dem Empfang anzeigt?
Ich bin mir fast sicher, dass so ein doofes Zeichen bei der ersten Übertragung gesendet wird, welches mein C-Programm nicht sendet.
Oder spricht das Terminal in Bascom die serielle Schnittstelle anders an????
Lesezeichen