-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: Einfachstes UART RS232 empfangen funktioniert nicht

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.08.2006
    Ort
    Kitzscher
    Alter
    38
    Beiträge
    237

    Einfachstes UART RS232 empfangen funktioniert nicht

    Anzeige

    Ich glaube ich habe nun schon alle möglichen Scripte die es gibt durchprobiert und nichts von allem funktioniert. Ich schaffe es nicht auch nur irgendein String oder auch nur eine einzelne Zahl zu senden und im ATMEGA32 auszuwerten und über die Serielle Schnittstelle zurückzusenden.


    Mit welchem Programm kann man vernümpftig Strings senden und auch wieder empfangen ? Hab ich irgendetwas nicht eingerichtet oder eingestellt auf dem ATMEGA32 .. ich weis es nicht ...

    Es wäre schön wenn mir jemand ein Beispiel geben könnte mit welchem Programm er arbeitet und welches Script er einsetzt das die Kommunikation zw. PC und dem ATMega funzt.


    Hier ist eines der Scripte die ich ausprobiert habe die so einfach gehalten sind das doch eigentlich nichts schief gehen kann aber rühren tut sich gar nix.
    Code:
    $regfile = "m32def.dat"                                     
    $crystal = 16000000                                         'Quarz: 16 MHz
    $baud = 9600                                                'UART-Baudrate: 9600 Baud
    
    
    $hwstack = 32                                               ' default use 32 for the hardware stack
    
    $swstack = 10                                               ' default use 10 for the SW stack
    
    $framesize = 40                                             ' default use 40 for the frame space
    
    
    
    'Config Portb = Output 'Config Port B als Output
    
    Dim A As Byte                                               'Declarieren der Variable als 8Bit Wert
    A = 0
    Loop:                                                       'Setzen der Sprungmarke
    Input ">" , A                                               'Wartet auf Wert von der Seriellen Schnittstelle
    Print A                                                     'Setze den Port A vorher Empfangenen Wert
    Goto Loop                                                   'Spring zurück zur Sprungmarke

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    06.12.2005
    Ort
    Hamburg
    Alter
    28
    Beiträge
    86
    Also der Code sieht eigentlichh ganz gut aus aber lass mal das
    Code:
    'Config Portb = Output 'Config Port B als Output
    weg!
    Also bei mir geht es so(nehme für den PC "HTERM" mal googeln)
    UND :
    1) Hast du auch ein CR(chr. 13) mitgesendet?
    2) Stimmt ggf. die Pegelwandlung
    3) ist alles richtig verkabelt?
    4) geht nur Print(kannst Daten richtig empfangen)?

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.08.2006
    Ort
    Kitzscher
    Alter
    38
    Beiträge
    237
    1) Hast du auch ein CR(chr. 13) mitgesendet?

    was ist das ??

    2) Stimmt ggf. die Pegelwandlung

    kann ich auch nix anfangen mit ?!

    ist alles richtig verkabelt?
    ja das senden funktioniert. Habe mein RN-Controll ganz normal über die mitgelieferten Anschlußkabel angeschlossen da dürfte nichts falsch sein.

    4) geht nur Print(kannst Daten richtig empfangen)?
    JA bisher ging immer nur Print ein senden ist möglich das empfangen hat bisher nie geklappt egal welche Scripte ich versucht habe.

    Ich bin mir nicht sicher ob ich nur die Daten vom PC her falsch sende oder ob ich evtl. noch irgendeine Einstellung für den Controller vergessen habe.


    'Config Portb = Output 'Config Port B als Output
    hatte ich schon auskommentiert das war aus einem Beispielscript wo die Ausgabe wohl per Port erfolgen sollte aber ich will eigentlich ein Feedback sehen wenn ich sende soll er mir die bestätigung zurücksenden naja das ist schwieriger als ich dachte.

    Gruß
    Steffen

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    06.12.2005
    Ort
    Hamburg
    Alter
    28
    Beiträge
    86
    Also "CR" ist ein Steuerzeichen das muss mitgesendet werden sonst ignorriert der controller die Daten bedeutet -->no input
    Bei meinem "HTerm" z.B. kann man das einstellen

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    13.06.2006
    Beiträge
    56
    Hallo,

    kann es sein, dass dein Code grundlegend falsch ist?
    Ich benutze für den Empfang via serielle Schnittstelle immer Inkey(). Hier mal ein Beispiel:


    Code:
    $regfile = "m32def.dat"
    $crystal = 4000000
    $baud = 9600
    
    Dim Zeichen As Byte
    Zeichen = 0
    
    Do
      Zeichen = Inkey()
      If Zeichen > 0 Then Print "Habe Zeichen " ; Chr(zeichen) ; " empfangen!"
    
     Loop
    End
    Ich benutze sowas auch häufig in Kombination mit einer Select Case-Schleife.

    Gruß

    Werner

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.08.2006
    Ort
    Kitzscher
    Alter
    38
    Beiträge
    237
    danke für das beispiel sowas habe ich gesucht aber wie alle beispiele finde ich keine möglichkeit es irgendwie auszuwerten.

    Das Hterm verstehe ich nicht wo kann man da Daten empfangen ?!

    Gibt es nicht etwas einfach wo ich senden und auch empfangen kann ?

    Ich werde wohl erstmal versuchen müßen mit deinem Beispiel den Speaker zu aktivieren das sollte mir die Möglichkeit geben zumindest akustisch bestätigung zu erlangen das da irgendwas funktioniert.

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.09.2005
    Beiträge
    276
    a) wozu ein chr(13) ?
    b) wenn man das einsetzt "Zeichen = Inkey()" wartet die CPU Wochen bis wirklich ein Zeichen ankommt.

    Gento

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    von wegen, bei inkey wartet das Ding nie, wenn nix angekommen ist gibt Inkey 0 zurück und weiter gehts.
    Was Du meinst ist "waitkey"
    Vor den Erfolg haben die Götter den Schweiß gesetzt

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.08.2006
    Ort
    Kitzscher
    Alter
    38
    Beiträge
    237
    Also bei Inkey höre ich den Speaker ständig so kann das nicht sein ohne zeichen geschickt zu haben dürfter der Speaker nicht aktiviert werden und bei Waitkey passiert rein gar nichts wo ich bei meinem üblichem Problem wäre. Hier ist der Schnippsel den ich verwendet habe :

    Code:
    $regfile = "m32def.dat"                                     'ATmega8-Deklarationen
    $crystal = 16000000                                         'Quarz: 16 MHz
    $baud = 9600                                                'UART-Baudrate: 9600 Baud
    $hwstack = 32                                               ' default use 32 for the hardware stack
    $swstack = 10                                               ' default use 10 for the SW stack
    $framesize = 40                                             ' default use 40 for the frame space
    
    
    
    
    Dim Zeichen As Byte
    Zeichen = 0
    
    Do
      Zeichen = Waitkey()
      If Zeichen > 0 Then Print "Habe Zeichen " ; Chr(zeichen) ; " empfangen!"
      Sound Portd.7 , 400 , 350                                 'BEEP
    
     Loop
    End

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    43
    Beiträge
    2.240
    ich vermute Hardwarefehler.
    Max232 richtig beschalten, RX-TX richtig beschalten,
    Serialkabel richtrig angeschlossen, richtigen COM am PC eingestöpselt COM1 COM2, Richtiger COM im Terminal eingestellt etc.
    Fuses falsch gesetzt, läuft der M32 auf 16MHz?
    oder noch intern auf 1MHz, Baudrate vom Terminal
    und M32 passend etc.

    Frage: Funktioniert Print Anweisung? Kommt im Terminalfenster was an?
    Vor den Erfolg haben die Götter den Schweiß gesetzt

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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