www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART mit zwei Mega16


Autor: Manuel (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich habe wieder mal ein Problem ;)

Ich will zwei Mega 16 über USART verbinden, dabei soll einer nur senden 
und der andere nur empfangen, also nichts aufregendes.
Da das Neuland für mich ist, habe ich ein codebeispiel aus dem tut, das 
ehemals fürn mega8 geschrieben war für meine zwecke angepasst.

Leider funktioniert die kommunikation bzw. die ausgabe noch nicht.
Das angehängte file ist der code für den empfänger, vielleicht kann ja 
jemand mal kurz drüberschaun, und sagen ob es von empfängerseite her 
klappen müsste oder nicht. Dann kann ich eines ausschließen und auf 
fehlersuche gehen.


Manuel

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm, habe irgendwie auch keine Lust mehr heute abend.
PortA benutzt -> AVcc und Agnd angeschlossen?

Ansonsten ist meist nicht so schlau, gleich 2 neue Systeme einzusetzen. 
Nehmen sie sich einen MAX232, beschalten ihn mit 4 Kondensatoren, 
schliessen sie einen TTL-Eingang eines Transmitters an die 
Übertragungsleitung, schliessen sie den entsprechenden RS232-Ausgang an 
den RxD-Eingang ihrer seriellen PC-Schnittstelle, starten sie 
Hyperterminal (oder was besseres), schauen sie auf den Bildschirm, 
überweisen sie mir DM 4000.

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DM gibts zum glück nichtmehr ;)

Aber danke für die Hilfe, werde erstmal AVcc und Agnd anschliesen, und 
wenns dann nicht geht, werde ichs erstmal mit dem pc versuchen.

Manuel

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, von der Seite des Senders klappt alles wunderbar. Kriege die Zeichen 
genauso aufm Terminal wie ich sie sende.

Am Empfänger sind AVcc und Agnd angeschlossen.
Zuerst dachte ich, das beim empfänger irgendwas mit dem RXC interupt 
nicht hinhaut, also habe ich den code vom int. mal mit ner schleife in 
die main. ging allerdings auch nicht. Ich betreibe beide Controller mit 
nem ext. 16 Mhz quarz und die Spannung ist bei beiden die gleiche.
Kann es sein, das es irgendwie Hardwarebedingt ist?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>    sbi UCSRA, RXC

Lass mal das RXC Bit in Ruhe. Das bedient der µC
und nicht dein Programm. Dein Pgm sollte das Ding
maximal abfragen. Löschen könnte auch noch akzeptabel
sein. Aber setzen, da krieg ich Bauchweh.

Wird der Interrupt aufgerufen?
Hast du mal probiert, aus der Interrupt
Funktion das Zeichen einfach mal zum Sender
zurückzuschicken?

Autor: Manuel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, der interrupt wird nicht aufgerufen, ich habe zwar nicht versucht 
es zurückzuschicken, aber ich habe in die interrupt routine mal 0xFF auf 
port A ausgegeben, und die waren auf low.

Mist, ich glaube ich habe den fehler:
.equ CLOCK = 1000000

Der Mega läuft jedoch mit nem 16 Mhz quarz.
Das kommt von copy and paste...

Trozdem danke für die hilfe, und wie das mit dem RXC bit läuft ist mir 
nun auch klar...

MfG
Manuel

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.