printf() am ATmega16 benutzen

Gast #1763440
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?
#1763554
Lesenswert?
• ▲
▼
Na ja ... er ist kurz, also:
1
    #include <stdio.h>
2

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

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

8
    static int
9
    uart_putchar(char c, FILE *stream)
10
    {
11

12
      if (c == '\n')
13
        uart_putchar('\r', stream);
14
      loop_until_bit_is_set(UCSRA, UDRE);
15
      UDR = c;
16
      return 0;
17
    }
18

19
    int
20
    main(void)
21
    {
22
      init_uart();
23
      stdout = &mystdout;
24
      printf("Hello, world!\n");
25

26
      return 0;
27
    }

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.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.