Forum: Mikrocontroller und Digitale Elektronik dsPic: UART Ausgabe über fprintf


von Meike (Gast)


Lesenswert?

Hallo,

ich versuche verzweifelt auf meinem dsPIC30F2010 eine Ausgabe auf der 
seriellen Schnittstelle über fprintf zustande zu bekommen.

Für den C18 Comopiler gibt es so viele schöne Dokumentationen von 
Microchip selbst. Aber über den C30 finde ich nichts was mir bisher 
weitergeholfen hätte.

Über WriteUART1 bekomme ich bereits eine Ausgabe zustande. Aber wie 
leite ich das weiter auf fprintf? In C18 geschah das über 
fprintf(_H_USART, "...");
Schaue ich aber in der stdio.h vom C30 Compiler nach, dann finde ich 
nichts vergleichbares.
Ich habe es über prinf("..."); versucht. Wie ich es oft bei Google 
gefunden habe. So startet mir aber Ständig der dsPic neu (als ob sich 
das gesamte Programm in einer Schleife befinden würde.


Kann mir jemand helfen?

von holger (Gast)


Lesenswert?

sprintf() in einen RAM Puffer und den dann ausgeben.

von Meike (Gast)


Lesenswert?

Hallo Holger,

ich weiß nicht genau was du damit meinst. Könntest du mir ein Beispiel 
nennen?

Viele Grüße
Meike

von (prx) A. K. (prx)


Lesenswert?

Warum fprintf statt printf?

In Controller-Libs setzt printf üblicherweise eine vom Programmierer zu 
implementierende Ausgabefunktion für eine einzelnes Zeichen voraus.

von Meike (Gast)


Lesenswert?

Hallo A.K.,

wie sage ich dem printf welches meine Ausgabefunktion für eine einzelnes 
Zeichen ist?

Viele Grüße
Meike

von (prx) A. K. (prx)


Lesenswert?

Sowas steht üblicherweise im Manual der Lib.

Google (c30 printf) weiss auch was und weist darauf hin, dass printf 
schon von Haus aus auf UART1 ausgibt.

von Meike (Gast)


Lesenswert?

Danke für eure Antworten.

Dass prinft UART1 ausgeben soll, war mir bewusst. Das Problem ist, dass 
dann mein Controller ständig neu startet. Ich werde zunächst versuchen 
die neuste Version vom C30 Compiler zu installieren.

Viele Grüße

von Meike (Gast)


Lesenswert?

So ich habe das Problem gefunden.

Unter Project -> Build Options -> MPLAB LINK 30 habe ich den "Heap Size" 
von 200 auf 50 gestellt.
Jetzt geht es.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.