mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik uart sendet nicht immer richtig


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

Bewertung
0 lesenswert
nicht lesenswert
Irgendwie bekomme ich es nicht auf die Reihe einfache Zeichen über den 
Uart an den Computer zu senden..
In meinem Programm sollen einfach nur 2 zeichen gesendet werden die ich 
dann im Hyperterminal aufnehme, doch statt "MA" kommen andauernd andere 
Buchstaben, mal SXSXSX oder was auch immer. Die Baudrate würde ich nach 
meiner Recherche schonmal ausschließen, so wie ich das verstanden hab 
kommt dann ja nur Mist. Irgendwie kommt mir das so vor als wenn er 
einfach zu früh oder zu spät beginnt abzutasten, wenn ich das serielle 
kabel mal reinstecke und wieder rausziehe ist es ca alle 5 mal wieder 
richtig.. Das Fusebit für den externen oszillator hab ich mit der myavr 
software gesetzt (im übrigen funktioniert der uart mit dem testprogramm 
auch 100%ig) also gehe ich davon aus das der fehler in meinem quellcode 
liegt.. vielleicht kann mal jemand drüber schauen.. vielleicht hab ich 
auch einfach gerade ein brett vor dem kopf

Autor: Igor Metwet (bastel-wastel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo ist "F_CPU" definiert?
Die Übertragungsrate wird damit ja ausgerechnet.

Wenn du zwei Zeichen sendest und mehrere Zeichen ankommen, dann sieht 
das sehr nach Baudratenfehler aus. Hast du diesen mal von Hand 
ausgerechnet und mit dem Ergebnis verglichen, dass dir der Simulator 
ausspuckt?

PS: Die Variable "Zeichen" kannst du dir auch sparen. Schreib einfach:

USART_SENDEN('M');

Autor: Hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du sendest einen endlosen Datenstrom. Da wird sich das Terminalprogramm 
evtl. nicht richtig synchronisieren. Mach mal nach den zwei chars eine 
kleine Pause.

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>doch statt "MA"

>Die Baudrate...kommt dann ja nur Mist.

Wie würdest du das denn bezeichnen:
>mal SXSXSX oder was auch immer

Autor: keineahnung (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja klar aber immerhin ist es ein gleichmässiger "mist" und alle paar 
male passt es ja auch wieder (wenn ich das kabel ziehe und wieder 
reinstecke) ich guck mal gerade wie fcpu definiert ist, hab ich im 
makefile gemacht

Autor: Igor Metwet (bastel-wastel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du schreibst ein Zeichen in eine signed char Variable.
Diese übergibst du einer Funktion als unsigned char.
Gibt der Compiler keine Warunung aus, oder ist sowas nicht relevant?

Autor: keineahnung (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
fcpu ist 3686400

Autor: keineahnung (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
achso, ich setze 2 zeichen hintereinander @igor

Autor: keineahnung (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
beim kompilieren gibts keine fehlermeldungen.. ich nutze winavr

Autor: Igor Metwet (bastel-wastel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
keineahnung wrote:
> achso, ich setze 2 zeichen hintereinander @igor

Ja und?

Autor: keineahnung (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
besten dank euch!! jetzt klappts, es war tatsächlich die pause die 
fehlte, jetzt läuft es einwandfrei

Autor: Hannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sag ich doch...

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.