www.mikrocontroller.net

Forum: Compiler & IDEs Verwendung von UART und stdio.h auf einem AVR


Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ich würde gerne ein paar Debugfunktionen in mein Programm integrieren, 
eventuell auch eine Möglichkeit, es über UART etwas zu steuern.

In meinem schlauen aber mittlerweile auch nicht mehr so brandaktuellen 
AVR Buch steht drin, dass man für Terminalfunktionen die stdio.h 
verwenden könne. Leider ist das darin auch recht schwammig thematisiert 
und im Internet finde ich nix gescheites darüber.

Kann jemand mal kurz erklären ob mir stdio.h Funktionen bereitstellt mit 
denen ich so ohne größere Hürden ganz einfach Sachen auf dem UART 
ausgeben kann?

lg PoWl

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Immer aktuell und hilfreich ist die mitgelieferte Dokumentation. Die 
findet sich auf deiner Festplatte, aber auch online hier:

http://www.nongnu.org/avr-libc/

Im Kapitel zu stdio.h
http://www.nongnu.org/avr-libc/user-manual/group__...

gibt es ein Beispiel zur Verwendung von printf.
Wenn du nur Texte ausgeben willst, reicht auch uart_putchar aus dem 
Beispiel.

Oliver

Autor: Paul H. (powl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sry, gerade das verstehe ich nicht. Ich sehe da keine Funktion wie 
uartinit(). Muss ich die selbst schreiben? Dann kann ich auch gleich 
alles selbst entwickeln ;-)

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du musst nur eine Methode bereitstellen, um ein einzelnes Zeichen 
rauszusenden. Die ist im einfachsten Fall ein Zweizeiler, den du direkt 
aus der Dokumentation rauskopieren kannst.

Wenn du mehr/andere Features brauchst, halt entsprechend 
umfangreicher... Bsp: einen Stream der über Ethernet/TCP ausgibt, 
Bufferung des UARTS, senden über IRQ usw.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Muss ich die selbst schreiben?

Nee. Du musst nur google intelligent anwenden, es gibt tonnenweise Code 
dazu im Netz (auch hier in der Codesammlung).

Aber was solls, hier z.B.
Beitrag "Fernbedien RC5 Empfänger"
ist eine minimal-uart-Augabe drin.

Zusammenbasteln musst du dir das aber schon selber.

Ausserdem: AVR-Programmieren, ohne das Datenblatt zu lesen, geht nicht. 
Auch wenn das alles auf English ist, würg dich da durch. Da gibt es auch 
Code-Schnipsel.

Oliver

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Paul Hamacher wrote:
> sry, gerade das verstehe ich nicht. Ich sehe da keine Funktion wie
> uartinit(). Muss ich die selbst schreiben? Dann kann ich auch gleich
> alles selbst entwickeln ;-)

Ja, beim AVR muß man das selber machen. Der Grund sind die vielen 
verschiedenen Implementierungen (4 verschiedene Namen für den 
Empfangsinterrupt usw.).
Außerdem will der eine die UART mit Polling, der andere über Interrupts, 
der eine mit FIFO, der andere mit Linearpuffer, der nächste invertiert 
usw. usw.


Ich habe hier mal versucht die AVRs mit HW-UART zu erschlagen (als 
Interrupt mit FIFO):

Beitrag "AVR-GCC: UART mit FIFO"



Peter

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.