UART Atmega8

OP #3210807
Lesenswert?

Hi Forum,
ich versuche gerade über UART von Atmega8 zu Atmega8 zu kommunizieren. 
Dabei habe ich TX vom Sender mit RX vom Empfänger verbunden. Eingestellt 
sind beide Chips auf internen 1MHz (kein Quarz). Im Code habe ich eine 
Baudrate von 2400 angegeben.
An beiden soll per Taster eine LED getoggelt werden. Doch getoggelt wird 
nur die LED am Sender.

Ich denke Hardwareseitig passt alles. Ist ein recht simpler Aufbau. 
Unsicher bin ich mir bei der Software. Ich habe mal beide c-Dateien 
beigefügt. Evtl erkennt jemand sofort den Fehler.

Danke im Voraus
Loopdude
Angehängte Dateien:
Gast #3211000
Lesenswert?

int release_conf1 = 0;

Das sind nur 8bit und auch noch signed. Also geht der Wertebereich von 
-128 bis +127
Und Du versucht 500 reinzuschreiben und gegen 2000 zu vergleichen.
Das kann nicht funktionieren!
OP #3215624
Lesenswert?

Danke schonmal für die Antworten.
Ich habe mir jetzt mal Quarze bestellt. Hoffe sie sind spätestens morgen 
da.

Was ist gemeint mit der Frage ob ich GND auch verbunden habe? Muss beim 
UART zusätzlich zum RX und TX etwas verkabelt werden? Ich dachte es 
langt wenn TX an RX angeschlossen ist um eine einseitige Verbindung 
herzustellen. Könnte jemand das genauer erklären?

Die Fuses sind bei beiden gleich gesetzt. Ich dachte wenn eine kleine 
Fehlerquote vorhanden ist werden nur nicht immer die Daten korrekt 
übertragen. Dachte zumindest ein paar "Pakete" würden korrekt ankommen.

int release_conf1 habe ich begrenzt, da sonst irgendwann ein Überlauf 
passiert.
#3215633
Lesenswert?

Jason Lnkk schrieb:
> Danke schonmal für die Antworten.
> Ich habe mir jetzt mal Quarze bestellt. Hoffe sie sind spätestens morgen
> da.
>
> Was ist gemeint mit der Frage ob ich GND auch verbunden habe? Muss beim
> UART zusätzlich zum RX und TX etwas verkabelt werden? Ich dachte es
> langt wenn TX an RX angeschlossen ist um eine einseitige Verbindung
> herzustellen. Könnte jemand das genauer erklären?

Ähm.
Wann immer du 2 Schaltungen miteinander verbindest (ok, es gibt 2 
Ausnahmen: Übertrager und Optokoppler), musst du slebstverständlich eine 
GND Verbindung herstellen.

Spannungen sind nur Potentialdifferenzen. Der Begriff +5V sagt nichts 
ausm, wenn du nicht dazusagst "5V in Bezug auf welches Potential!"

Und damit 2 Schaltungen eine gemeinsame Vorstellung davon haben, was 
denn jetzt eigentlich 0 sein soll, muss man klarerweise beiden einen 
gemeinsamen Bezugspunkt geben, sonst kommt da Blödsinn raus. Eine simple 
Verbindung der GND Leitungen leistet das zb. bereits.
OP #3218371
Lesenswert?

Mal ein Update:
UART funktioniert jetzt. Auch ohne die Quarze. Es lag also am Code. Ich 
habe mir den Code aus dem Datenblatt rauskopiert und 1-2 kleine 
Veränderungen vorgenommen. Jetzt toggelt Chip1 eine LED an Chip2.
Den Code kann ich jetzt in meinen bestehenden Code integrieren um über 
UART per Taster verschiedene Sachen auszulösen.

Vielen Dank an alle die geholfen haben.
OP #3218379
Lesenswert?

Die Quarze werde ich auf jeden Fall nutzen wenn ich sie habe. Ich bin 
nur froh, dass es funktioniert und ich mir über die Programmierung keine 
Gedanken mehr machen brauch.
Da das Ganze im Sommer im freien laufen soll, kann ich das Risiko bei 
Temperaturschwankungen nicht eingehen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren