mikrocontroller.net

Forum: Compiler & IDEs [WinARM] printf-Problem


Autor: Pototschnig Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche gerade printf dazu zu bringen Text auf meinem LCD
auszugeben. Dazu hab ich syscalls.c eingebunden und folgendes gemacht:

1. Einen Funktionspointer deklariert, weil ich es nicht hingekriegt
habe das syscalls.c die Referenzen auf meine putc-Funktion findet, die
sich in einem C++-Kompilierten Objekt befindet.
void (*LCD_PUTC) (char c);

2. _write_r von syscalls.c entsprechend angepasst
_ssize_t _write_r (
    struct _reent *r, 
    int file, 
    const void *ptr, 
    size_t len)
{
  int i;
  const unsigned char *p;
  
  p = (const unsigned char*) ptr;
  
  for (i = 0; i < len; i++) {
    LCD_PUTC(*p++);
  }
  
  return len;
}

3. Den Funktionspointer in meiner main.cpp initialisiert
extern void (*LCD_PUTC) (char c);

void Init()
{
  LCD_PUTC  = LCD_putc;
}

4. LCD_putc sieht so aus:
void LCD_putc(char c)
{
  myLCD.PutC(c);
}

Aber LCD_putc wird anscheinend nie aufgerufen. (myLCD ist korrekt
initialisisert)

Ich tippe ja darauf, dass _write_r schon nicht aufgerufen wird. Ich hab
das aus dem HelloWorld Example übernommen, in dem mit iprintf() etwas
über die RS232 ausgegeben und eingelesen werden kann. Das verwendet die
gleichen Funktionen.

Weiß da jemand Rat?

Autor: Pototschnig Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Problem gelöst:
fflush(stdout);
vergessen.

Autor: Mario (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo hast Du >> fflush(stdout); << eingefügt ???

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.