-         

Ergebnis 1 bis 6 von 6

Thema: Daten seriell tauschen zwischen 2 Atmels

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    10.08.2006
    Beiträge
    20

    Daten seriell tauschen zwischen 2 Atmels

    Anzeige

    Hallo zusammen,

    ich habe ein kleines Verständnissproblem. Ich habe 2 Einheiten, ein Atmega 128 Einheit welche als Alarmzentral fungiert und eine Display Einheit mit einem Atmega 128 welche neu dazukommen soll. Nun möchte ich von meiner Zentrale Zustände an meine Displayeinheit senden, am Liebsten über die Hardware UART des Atmega. Hat einer ein kleines Beispielprogarmm wie ein simpler Datenaustausch funktioniert ? Ich möchte z.B. übertragen wenn ein Fenster geöffnet wurde "variable fenster_wohn_eg=1" damit die Displayeinheit das sicher auslesen kann und anzeigen. Kann man sicherstellen das heir keine Daten verloren gehen oder kann man das prüfen ? Besten Dank für Euer Feedback

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Du kannst RX<->TX und TX <->RX einfach direkt verbinden, für kürzere Strecken, und über MAX232 Pegelwandler, wenn es weiter geht.
    Jeder der beiden muss IMMER empfangsbereit sein, am besten mit Buffer (CONFIG SERIALIN = buffered)
    Dann geht normalerweise auch nix verloren.
    Darüberhinaus kann man diversen Prüfsummen die Übertragung kontrollieren.
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    33
    Beiträge
    2.380
    du meinst doch bestimmt nen MAX485 wenns weiter gehen soll ??? MAX232 iss ja eigentlich nur für PC gedacht udn so extrem weit geht das auch nicht unbedingt

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    10.08.2006
    Beiträge
    20

    Aber wie gehts per software

    Ich wollte ohne Pegelwandler auskommen, Suche aber einen Beispielcode. Kann wer helfen ?

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Mit PC hat das nix zu tun, RS232 is RS232
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    705
    Ich kann nur über meine Erfahrungen mit einem Mega8 bzw. Mega88 berichten - nehme aber mal an, dass die UART-Geschichte beim 128er ähnlich ist. Beide Controller müssen natürlich die gleiche Baudrate haben ($Baud = xxxx)

    Senden:
    Code:
    Dim X as Byte
    X = ....
    UDR = X
    und schon wird die Variable X über den TX-Pin gesendet.


    Empfangen:
    Sobald ein komplettes Datenpaket empfangen wurde, löst die Schnittstelle einen Interrupt aus. In dieser ISR kannst Du dann die empfangene Variable abholen. Ganz grob etwa so:
    Code:
    Dim X As Byte
    
    On Urxc Empfangen
    Enable Urxc
    Enable Interrupts
    
    Do
    Loop
    
    Empfangen:
    X = Udr1
    Return
    Wie gesagt - ohne Gewähr hinsichtlich Syntax-Feinheiten beim Mega128. Aber eigentlich ist das ganz simpel - probier´s einfach mal aus!

Berechtigungen

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