- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 16

Thema: Problem bei UART Kommunikation zwischen ATmega und VB.net

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    34
    Beiträge
    1.192
    Hallo,
    kenne mich zwar nicht direkt mit Bascom aus, aber welche Länge hat denn die Zeichenkette X ? Also wie lange wartet der Prozessor bei Input X ?
    Wird das über Dim X As String * 10 festgelegt?

    Oder machen die Steuerzeichen die du mitsendest (vbCrLf) Probleme?
    Grüße,
    Bernhard

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von BMS Beitrag anzeigen
    Hallo,
    kenne mich zwar nicht direkt mit Bascom aus, aber welche Länge hat denn die Zeichenkette X ? Also wie lange wartet der Prozessor bei Input X ?
    Wird das über Dim X As String * 10 festgelegt?

    Oder machen die Steuerzeichen die du mitsendest (vbCrLf) Probleme?
    Grüße,
    Bernhard
    Input wartet auf das CR (Return) das LF (Linie Feed) ist input egal und das String Ende wird durch eine NULL gekennzeichnet. Ob das VbCrLf zusammen gesendet stört? Im Bascom Programm ist Dim X As String * 10 schon richtig.

    Gruß Richard

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    ich vermute auch, daß das LF am Schluß Probleme bringt. Schau mal den CONFIG INPUT Befehl an. Dort kann man festlegen, welche/s Zeichen INPUT beendet. Default ist nur CR.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied Avatar von masasibe
    Registriert seit
    21.01.2011
    Beiträge
    181
    Hallo Wsk8!
    Ich habe deinen Code eingebaut und ausprobiert, aber es hat leider trotzdem nicht funktioniert.

    Input wartet auf das CR (Return) das LF (Linie Feed) ist input egal und das String Ende wird durch eine NULL gekennzeichnet.
    Hallo Richard!
    In VB habe ich jetzt das vbCrLf durch vbCr ersetzt und auch das hat nicht geholfen. Muss ich das mit der Null am Ende des Strings noch einbauen?

    Das komische an der ganzen Sache ist ja, dass es immer das erste Mal funktioniert. Also wenn ich den ATmega einschalte und dann den "aus"-Button
    drücke, dann geht die Led aus nur dann geht sie nicht mehr an. Also irgendwie funktioniert die erste Übertragung, aber alle weiteren nicht mehr.

  5. #5
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Du musst den String auch immer leeren.
    Weil sonst kommt bei der ersten Übertragung ein "Aus" da rein und das steht dann da drin. Dann kommt die Abfrage und bei einer zweiten Übertragung kommt noch ein "Aus" oder "An" da rein und dann steht "AusAn" oder "AusAus" in dem String.

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    In VB bin ich nicht so fit. Könnte es sein, das beim Senden die "SerialPort1.WriteLine" schon von sich aus ein CRLF anhängt und mit dem & vbCrLf noch weitere angehangen werden? Gibt es ein "SerialPort1.Write"?

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied Avatar von masasibe
    Registriert seit
    21.01.2011
    Beiträge
    181
    Hallo Searcher!
    Kurz bevor ich deinen Beitrag gelesen habe, hatte ich die gleich Idee und es hat wirklich funktioniert.
    Wenn ich schreibe SerialPort1.write("an" & vbcr) dann klappt es ohne Probleme.

    Nur komisch, dass es mit SerialPort1.writeline("an") nicht funktioniert. Das habe ich nämlich ganz am Anfang geschrieben
    und das hat überhaupt nicht funktioniert. Aber vielleicht liegt es wirklich am LF das gesendet wird.

    Aber Hauptsache es funktioniert jetzt mit SerialPort1.write!

    Vielen Dank für eure Hilfe!

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Schaue Dir auch einmal bascoms instr an, damit kann man in einem String geziehlt nach z.B. "Ein" suchen. Die Funktion gibt war b.z.w. Unwar zurück.
    Außerdem ist Input nicht gerade praktisch weil das solange den µC blockiert bis ein CD ankommt.

    Gruß Richard

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    Zitat Zitat von masasibe Beitrag anzeigen
    Hallo Wsk8!
    Ich habe deinen Code eingebaut und ausprobiert, aber es hat leider trotzdem nicht funktioniert.


    Hallo Richard!
    In VB habe ich jetzt das vbCrLf durch vbCr ersetzt und auch das hat nicht geholfen. Muss ich das mit der Null am Ende des Strings noch einbauen?

    Das komische an der ganzen Sache ist ja, dass es immer das erste Mal funktioniert. Also wenn ich den ATmega einschalte und dann den "aus"-Button
    drücke, dann geht die Led aus nur dann geht sie nicht mehr an. Also irgendwie funktioniert die erste Übertragung, aber alle weiteren nicht mehr.
    Das habe ich schon begriffen, versuche einmal nur CR ohne VB, VB ist kein RS232 "genormtes" Steuerzeichen. Ansonsten kann ich Hterm empfehlen, um zu sehen was Dein VB Programm wirklich sendet Hterm zeigt in Hex,Bin,ASCII an was empfangen wurde. Ich vermute das deine Schleife hängt und deshalb nur 1 Durchlauf statt findet. Im Bascom Simutator kann man auch mittels Terminal b.z.w. Dein VB Programm austesten an welcher Stelle (Zeile) das Programm "Stoppt". Dazu muss aber im Header ein $sim eingefügt und neu Compiliert werden, (nicht vergessen das rückgängig zu machen für den normalen Betrieb).

    Gruß Richard

Ähnliche Themen

  1. Kommunikation zwischen 2 atmega
    Von 1.2.3.4.5.6. im Forum AVR Hardwarethemen
    Antworten: 17
    Letzter Beitrag: 31.08.2009, 16:33
  2. LCD-Kontrast und UART-Kommunikation zwischen 2 µcs
    Von MelMan im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 04.12.2008, 15:25
  3. Kommunikation zwischen 2 ATmega
    Von Ozzy im Forum AVR Hardwarethemen
    Antworten: 5
    Letzter Beitrag: 16.03.2008, 16:11
  4. Kommunikation zwischen 2 oder mehr atmega
    Von mihailo im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 12.03.2007, 22:53
  5. Uart-Kommunikation zwischen µCs
    Von ProgDom im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 20.04.2006, 00:37

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress