mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART beispielsuche


Autor: BAL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leute,

Nachdem ich meinen UART nun zum laufen bekommen habe, würde ich gerne
3byte aufnehmen und wieder ausgehen.
Das Signal ist asynchron, 31.250 KBaud, 8N1.
Über einen Interrupt bekomme ich das erste Byte rein und kann es auch
wieder ausgeben.

Frage: wie lese ich die darauffolgenden Bytes aus??(habe versucht ein
array zu füllen, nur das erste byte wurde reingeschrieben)

Ich suche auch ein bespiel in dem über den UART mehrer vorher
definierte Byte mit einer bestimmten Bautrate ausgegeben werden,,

bin für jeden Tip echt dankbar

Autor: tastendrücker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welcher µC? Welche Sprache? Wie sieht's mit Code aus? ...

So kann man nur raten!
Eventuell musst du nach dem Lesen des ersten Bytes ein Flag löschen,
damit beim nächsten Byte wieder ein Interrupt kommt.

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

Bewertung
0 lesenswert
nicht lesenswert
Hab da mal schnell das wesentliche zusammengesucht.

Grüße

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim AVR wird nach einem komplett empfangenem Byte ein RX-Complete
Interrupt ausgelöst, wenn er aktiviert ist. In der
Interrupt-Service-Routine holt man dann das Byte vom U(S)ART ab. Wird
ein weiteres Byte empfangen, geht das Spiel von vorn los. Man muß in
der ISR also nur entscheiden, wo man das empfangene Byte hinschreibt ->
indirekte Adressierung über Zeiger (X-Y-Z-Register).

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

Bewertung
0 lesenswert
nicht lesenswert
Danke erstmal für die schnellen Antworten,

Ich benutzte:  MSP430F1232 (8Mhz-external), programmiere in C.

Die Zuweisung der empfangenen Bytes in ein Array funktioniert also
nicht...?? siehe Dateianhang..

Danke Mark für das Beispiel,, mache mich gleich mal drüber


Grüsse

Autor: Mark (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab da noch ein paar warnings debugt. (AVR Studio)

Da der Beipielcode von einem Atmega8 ist, wirst du einige
Registernamen austauschen müssen.

MfG

Autor: BAL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch mal ganz kurz,,

wofür steht UDR??  == RXBUF0
und UDRE???

danke

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

Bewertung
0 lesenswert
nicht lesenswert
HI

ich habe versucht den Quelltext von Mark auf den MSP umzumünzen, aber
irgendwie haut´s nicht hin.. das prinzip ist klar..

warum meckert mein Compiler bei "memset"???

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.