www.mikrocontroller.net

Forum: Compiler & IDEs printf() am ATmega16 benutzen


Autor: Tobias Neumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich programmiere einen ATmega16 und will folgendes tun:

Ich will meiner stdio sagen das sie den Text den ich an printf() 
uebergebe an die Serielle Schnittstelle senden soll. Ich habe jedoch 
keine Ahnung wie ich das implementieren soll. Ich habe bereits einiges 
mit dem ATmega16 gemacht.. kenne mich mit den Eigenschaften des 
Controllers recht gut aus. Jedoch weiß ich nicht wie ich das umsetzten 
soll.. kann mir da jemand helfen?

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.nongnu.org/avr-libc/user-manual/group__...

Da ist Beispielcode dabei.  Zur Verfügung stellen musst Du nur eine 
Routine, die ein Zeichen ausgibt (und eine, die eines einliest, falls Du 
die umgekehrte Richtung auch benötigst).

Autor: Tobias Neumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke!
Ich lese es mir mal durch. :)

Autor: Tobias Neumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich kann den richtigen Beispielcode irgendwie nicht finden.. könntest du 
einen vielleicht hierein quoten?.. Wäre super.. Danke schonma im Voraus!

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na ja ... er ist kurz, also:
    #include <stdio.h>

    static int uart_putchar(char c, FILE *stream);

    static FILE mystdout = FDEV_SETUP_STREAM(uart_putchar, NULL,
                                             _FDEV_SETUP_WRITE);

    static int
    uart_putchar(char c, FILE *stream)
    {

      if (c == '\n')
        uart_putchar('\r', stream);
      loop_until_bit_is_set(UCSRA, UDRE);
      UDR = c;
      return 0;
    }

    int
    main(void)
    {
      init_uart();
      stdout = &mystdout;
      printf("Hello, world!\n");

      return 0;
    }


Ein Programm, das bis auf init_uart() komplett ist und via printf() 
einen String am UART ausgibt.  Natürlich muss Du die UART-Register auf 
Deinen µC anpassen.

Autor: Tobias Neumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie konnte ich das denn übersehen.. :)

Ich probiers gleich mal aus :)

Autor: Tobias Neumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Funktioniert einwandfrei.. Vielen Dank!

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.