- 12V Akku mit 280 Ah bauen         
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 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.

  2. #2
    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.

  3. #3
    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

  4. #4
    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!

  5. #5
    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

  6. #6
    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
    Ich würde das Input in die Recieve ISR vom UART packen. Dadurch wird nur was eingelesen wenn der Controller was empfängt und du blockierst ihn nicht durch das ewige warten auf eine Eingabe.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied Avatar von masasibe
    Registriert seit
    21.01.2011
    Beiträge
    181
    Damit der ATmega nicht dauernd blockiert verwende ich immer diesen Code:
    Code:
    if ischarwaiting = 1 then
    input x
    end if

    Richard: Das habe ich schon begriffen, versuche einmal nur CR ohne VB, VB ist kein RS232 "genormtes" Steuerzeichen.
    Aber muss man nicht, wenn man in VB das CR senden möchte vbCr eingeben. Jedenfalls habe ich mit Cr eine
    Fehlermeldung bekommen.

  8. #8
    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
  •  

12V Akku bauen