-         

+ Antworten
Ergebnis 1 bis 9 von 9

Thema: Kleines Problem mit Daten über RS232 einlesen, input get...

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674

    Kleines Problem mit Daten über RS232 einlesen, input get...

    Anzeige

    Also ich dachte, es wär so einfach, aber irgendwie werde ich da nicht schlau ruas, wie kann ich DAnte seriell einlesen, ich habe 2 AT90S2313 verbunden und der eine sendet ununterbrochen "a". Aber wie empfange ich die DAten nun am zweiten und wie bekomme ich das dann aufs LCD.
    Gibt mir Input oder Get den Buchstaben und welches die Zahl wieder.
    Könnte mir jemand einwenig Code schreiben?
    Müsste ja ohne die ganzen Configs irgendwie so aussehen:

    ***********
    Dim X as Byte
    do
    home
    get X
    Lcd X
    lowerline
    input x
    Lcd X
    loop
    **********

    Oder muss ich die Serielle Schnnittstelle noch irgendwie Initialieren, außer der Baudrate?

    Bitte helft mir

    MFG Moritz

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    27.05.2004
    Beiträge
    24

    Re: Kleines Problem mit Daten über RS232 einlesen, input get

    Hallo,

    Zitat Zitat von RCO
    Also ich dachte, es wär so einfach, aber irgendwie werde ich da nicht schlau ruas, wie kann ich DAnte seriell einlesen, ich habe 2 AT90S2313 verbunden und der eine sendet ununterbrochen "a". Aber wie
    meinst du eine Verbindung zweier ATMEL's mittel Software UART?
    Ich versuche mal hier 2 Proggis einzufügen, meintest du dies?
    Code:
    ' soll über Soft UART Befehle an BOT senden
    Dim Befehl As Byte
    Dim Wert As Byte
    Dim I As Byte
    Open "comd.2:19200,8,n,1" For Output As #1
    Open "comb.2:19200,8,n,1" For Input As #2
    
    Do
    Input "Gib Befehl ein  : " , Befehl , Wert
    Print
    Printbin #1 , 170
    Waitms 100
    Printbin #1 , Befehl ; Wert
    Loop
    "Bot" war in diesem Fall ein andere ATMEL.

    Zitat Zitat von RCO
    Oder muss ich die Serielle Schnnittstelle noch irgendwie Initialieren, außer der Baudrate?
    Ja, mit Soft UART auf jeden Fall.
    Habe hier noch ein Sample:
    Code:
    ' Gibt 10 mal "serial output" auf Port C.0 aus, danach Ende Programm
    ' Das zeigt sich an 10maligem Aufblitzen der LED
    ' KLAPPT!
    
    Dim I As Byte
    Waitms 100
    Open "comc.0:19200,8,n,1" For Output As #1
    For I = 1 To 10
    Print #1 , "serial output"
    Waitms 255
     Next I
     Close #1
     End                                                        'end program
    Hatte damals irgendwie zwei 4433 verbunden und die sollten beide kommunizieren.
    Hoffe, das hilft dir.

    mfG schnuppel

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2004
    Ort
    Nettetal
    Alter
    28
    Beiträge
    107
    Vielleicht hilft dir das hier noch weiter:

    http://www.roboternetz.de/phpBB2/vie...?p=38205#38205

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Also ich meinte das verbinden des Ein-/Ausgangs der seriellen Schnittstelle RXD/TXD, wo normlaerweise noch der MAX232 dahinterkommt, um mit dem PC o.ä. zu kommunizieren. Mein Problem hat sich mitlerweile aber auhc etwas verändert. Ich habe Jetzt einfach TX des einen Atmels an RX des anderen gehängt (Ein Kabel). DA beide an einer gemeinsamen Stromquelle hängen. Wenn ich mich nicht täusche, hat das mit dem UART nix zu tun, oder doch (verwirrt).

    Hier meine beiden Codes:

    Sender:
    Code:
    $baud = 1200
    
    Do
    Print "A"
    Waitms 300
    Print "B"
    Waitms 300
    loop
    Empfänger:

    Code:
    $baud = 1200
    Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portb.0 , Db6 = Portb.1 , Db7 = Portb.2 , E = Portb.3 , Rs = Portb.4       ' Natürlich so wie es wirklich angeschlossen ist (4-Bit-Modus)
    Config Lcd = 16 * 2
    Initlcd
    Display On
    Cursor Off
    Dim Rein As Byte
    
    Cls
    Do
    Home
    Input Rein
    Waitms 300
    Lcd "Input: " ; Rein
    Loop
    End
    Lasse ich die Baudanweisung (auch wenn sie in Bascom so eingestellt ist) weg, dann erhalte ich auf dem LCD:

    Input: 0
    Andernfalls erhalte ich garnix, also hängt der AVR beim INput.

    MFG Moritz

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2004
    Ort
    Nettetal
    Alter
    28
    Beiträge
    107
    Ist doch logisch!

    Es kann niemals passieren, dass die Daten genau dann am AVR ankommen, wenn du sie abfragst! Am besten ist, du nimmst meine Routine oben. Dann hast du solche Probleme nicht mehr. Diese schaut einfach immer, ob was im Eingang liegt und wenn ja, dann wirds zusammengesetzt.
    Anschließend kannst du noch ne Sub aufrufen, die dir das dann ausgibt!

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Also irgendwie liefert dein "Ucsra.rxc = 1" immer ne Felhermeldung!
    "Invalid Datatype[0]"

    Außerdem dachte ich, dass mindestens ein zeichen gepuffert werden würde, also irgendwas anliegen muss, also A oder B, aber nciht 0!

    MFG Moritz

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Hm, also aus Input bin ich jetzt nciht schaluer geworden, aber mit:

    A = Waitkey()

    klappts, das reicht dann erstmal.

    Danke für eure Mühen

    MFG Moritz

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    20.08.2004
    Ort
    Nettetal
    Alter
    28
    Beiträge
    107
    Komisch! Die Meldung kann ich mir nicht erklären.

    Und der Puffer ist nit ucsra.rxc, sondern udr! An ucsra.rxc liegt nur eine 1 an, wenn sich Zeichen im Puffer befinden!

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.06.2004
    Ort
    Aachen
    Beiträge
    2.674
    Naja, es läuft erstmal so, werde vermutlich später nochmal fragen.
    Ich wollte ne kleine Funkverbindung bauen, mit billig-modulen von ELV, die schon eine geraume Zeit hier rumligen, da musste erstmal die einfach Ferbindung klappen, bevor ich mich an die Funkverbindung mache.
    Jetzt läuft beides wunderbar.

    Also nochmal vielen Dank

    MFG Moritz

+ Antworten

Berechtigungen

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