sprintf und gLCD

OP #676357
Lesenswert?
• ▲
▼
Hallo,

ich habe mittlerweile eine eigene Funktion geschrieben die sehr gut den 
Text auf mein Display schreibt.
Nun möchte ich der allgemein bekannten Funktion sprintf sagen können, 
das sie den fertigen String aus ihrer Funktion an meine eigene Funktion 
schicken soll!

Wie kann ich das machen?
Hat jemand eine Idee?

Gruß

Tobias
#676361
Lesenswert?
• ▲
▼
Tobias Eckhardt wrote:
> Hallo,
>
> ich habe mittlerweile eine eigene Funktion geschrieben die sehr gut den
> Text auf mein Display schreibt.
> Nun möchte ich der allgemein bekannten Funktion sprintf sagen können,
> das sie den fertigen String aus ihrer Funktion an meine eigene Funktion
> schicken soll!

gar nicht.

>
> Wie kann ich das machen?

Indem du sprintf so benutzt, wie das vorgesehen ist.
Du stellst sprintf() einen character Buffer zur Verfügung
und sprintf pinselt seine Ausgabe dort hinein.
Was du danach mit diesem String-im-Char-Buffer machst ist
alleine dein Bier. Zb. kannst du ihn an deine LCD Routine
übergeben


   char Buffer[128];

   sprintf( Buffer, "%d", 35 );
   glcd( Buffer );

> Hat jemand eine Idee?

C-Buch lesen.
Gast #676376
Lesenswert?
• ▲
▼
Vielleicht suchst du sowas:
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
    }
Das ist ein Beispiel aus der avr-libc-doku. 
http://www.nongnu.org/avr-libc/user-manual/group__avr__stdio.html

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren