www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART Bit UDRE


Autor: Herbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ICh habe hier eine Schleife die zwei Bytes vom SPDR an den UART
rausgeben soll.
.
.
....
for(i=0;i<2;i++)
    {
    SPDR = 0x00;              //Byte zum Schieben
    while(!(SPSR&(1<<SPIF)));  //fertig geschoben?
                while(!(UCSRA&(1<<UDRE))); //UDR leer?
    UDR=SPDR;
}
....
.
.

Komischerweise geht das erste Byte via UART raus, das zweite jedoch
nicht. Da bleibt er im letzten while hängen.

Hab ich da ein Verständnisproblem? Wenn ich im AVR Studio (letzte
Version) das UDRE Bit setze, geht er auch nicht aus der Schleife raus.
Der Controller bleibt ebenfalls so hängen.

Hat jemand mal einen Tipp für mich? Ich möchte übrigens keinen INT
nutzen!

Herbert

Autor: Christian Schoch (kriki)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probiers mal mit

while(1) {
  if(UCSRA&(1<<UDRE)) {break;}
}

Weiss nicht genau obs so funktioniert, da ich normalerweile ASM
programmiere ...

Autor: Herbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee ist geklärt. Das Problem lag woanders. Ich sage nur RTFM. Das UART
kann mit dem UDRE abgefragt werden, nur braucht es im Simulator z.B.
einige Steps bevor das Bit wieder gesetzt ist und es weitergeht.

Danke trotzdem.

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.