Forum: Mikrocontroller und Digitale Elektronik printf und puts in C18


von Semikolon (Gast)


Lesenswert?

Hey

Ich schreibe ein Programm mit MPLAB in C18. Das Programm soll über die 
serielle Schnittstelle mit dem PC komunizieren, ich benutze dazu u.A. 
die Funktionen printf und puts. Das merkwürdige dabei ist, dass die 
Daten von Zeit zu Zeit falsch oder gar nicht übermittelt werden. Deshalb 
wollte ich mir mal die Funktion von printf bzw puts anschauen. Wo kann 
ich die finden?

mfg
Sigi

von holger (Gast)


Lesenswert?

>Deshalb wollte ich mir mal die Funktion von printf bzw puts anschauen.

Schau dir lieber noch mal dein Programm an.

von Semikolon (Gast)


Lesenswert?

mein Programm funktioniert an sich einwandfrei. Wenn ich die Daten über 
TXREG ausgebe, habe ich keine Probleme....

von Artjomka (Gast)


Lesenswert?

Obacht ist geboten bei der Programmierung mit C18, dass man auch den 
Datentyp welchen man übergibt im richtigen Speicherbereich hat. Es gibt 
seperate Funktionen um ROM bzw. RAM Daten zu verarbeiten/aus zu geben.

Wenn man da die falsche benutzt kommt schnell was durcheinander.

Hab leider keinen C18 auf diesen Rechner installiert, aber du solltest 
die funktionen irgendwo im C18 Ordner finden... Hatte z.B. mal das 
Problem, dass der UART nicht richtig initialisiert wurde (und das bei 
einer Microchip eigenen Routine! Da wurde vorm aktivieren des UARTs 
schon RX/TX mit TRIS umgesetzt - hat zu problemen wegen falschen 
ausgangspegel geführt) - da hab ich die funktion aus der lib kopiert und 
abgeändert.

von holger (Gast)


Lesenswert?

>mein Programm funktioniert an sich einwandfrei. Wenn ich die Daten über
>TXREG ausgebe, habe ich keine Probleme....

Dann bleib doch dabei.

Wenn du printf falsch benutzt darfst du dich nicht wundern
wenn da Müll rauskommt.

Beispiel: printf("%d",wert);

Bei %d wird ein int für wert erwartet. Wenn du für wert ein long 
übergibst
dann kracht es halt.

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.