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

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.