Hallo! an Alle, weiss jemand zufällig wie man printf so verbiegen kann, das man es für Ausgaben auf ein LCD-Display benutzen kann. Ich meine anstatt auf einem Bildschirm irgend Text oder Zahlen Auszugeben eben auf dem LCD-Display. Hinweis: Das Display ist an 2Port's angeschlossen. Wenn jemand Ideen oder Ansätze hat oder sogar weiss wie es geht, her damit. Gruß Klaus
> Hallo! an Alle, > weiss jemand zufällig wie man printf so verbiegen kann, > das man es für Ausgaben auf ein LCD-Display benutzen kann. Das hängt davon ab, welche C-Library du verwendest.
>...her damit.
So fressen meine Elephanten das Grünzeug von den Bäumen.
@Grimm_zek Bitte mal einfach mal die Schnauze halten. @Rolf Ich hoffe Du kennst Ride von Raisonance. Nun ich benutze die Standard C-Library bzw. das was von Raisonance mitgeliefert wird in der Demo Version. Aber es ist im Prinzip mal egal ich wollte einfach nur wissen ob man den printf befehl für eigene Ausgaben nutzbar machen kann, Ich würde ungern das Rad neu erfinden wollen. Vielleicht ist es auch besser eine eigen Routine zuschreiben. Gruß Klaus
sprintf() benutzen, schreibt die printf()-Ausgabe in einen RAM-Puffer. Von dort aus ab ans Display.
@cazy Danke für den Hinweis werd mich gleich mal dran machen. Mfg Klaus
<< Bitte mal einfach mal die Schnauze halten. Der Vergleich mit den Elefanten hat wohl genau getroffen.
Was sind denn das für Umgangsformen?! Dem würde ich definitiv nichtmehr helfen... MfG
@Michael Einfach die Schnauze halten wenn Du nichts Konstruktives beitragen möchtest. Wer sich hier über jeden Scheiß die Schnauze vereisst der ist hier wohl falsch gepolt. Ausserdem will ich hier niemanden beleidigen etc... wer sich jetzt auf den Schlips getreten fühlt dafür kann ich nichts aber wer mich von der Seite blöd anmacht dem gebe ich schon kontra. Ausserdem weiss niemand alles und ich denke doch, das dies ein Forum ist in dem Wissen ausgetauscht bzw. weiter gegeben darf. Ich hab von niemanden gefordert einen kompletten Code bereitzustellen um ihn einfach zu kopieren, oder! bissel will ich schon noch selber machen. ;-) Mfg Klaus
Um wieder zum Anfangsthema zurückzukommen: @cazy horse Wie kann man mit printf in den RAM schreiben und wie holt man den Inhalt wieder heraus, um ihn dann an ein LCD zu schicken? Wie es mit einem [Feld] geht, weiß ich, aber nach stundenlangen vergeblichen Versuchen mit printf muss ich doch hier noch einmal nachfragen. MfG Wolfgang
Hi
1 | char buffer[50]; |
2 | int foo; |
3 | int bar; |
4 | |
5 | sprintf(buffer, "foo:%d bar:%d",foo,bar); |
6 | |
7 | writeStringToLCD(buffer); |
Matthias
Sicherer: snprintf(buffer, 50, "foo:%d bar:%d", foo, bar); Desweiteren ist üblicherweise bei der Beschreibung der C-Library des Compilers beschrieben, welche Funktion für die Ausgabe einzelner Zeichen zuständig ist, die von printf/puts/etc. verwendet wird, und wie diese durch eine eigene zu ersetzen ist. Möglicherweise heißt die putchar oder putc oder so. Der Compiler liefert (zumindest in diesem Falle) eine mit, die die Zeichen auf der seriellen Schnittstelle ausgibt.
Hi wobei man dann auch unbedingt den Rückgabewert von snprintf() prüfen sollte, denn snprintf() schreibt AFAIK n Zeichen in den Puffer. Ist n erreicht bricht die Funktion ab und schreibt kein \0 mehr in den Puffer und das resultiert in einem unterminierten String. Als minimale Fehlerbehandlung empfiehlt sich dann sowas:
1 | char buffer[50]; |
2 | int foo; |
3 | int bar; |
4 | |
5 | if(snprintf(buffer, sizeof(buffer)-1, "foo:%d bar:%d",foo,bar)<0) |
6 | {
|
7 | buffer[sizeof(buffer)-1] = '\0'; |
8 | }
|
9 | |
10 | writeStringToLCD(buffer); |
Matthias
''Wer sich hier über jeden Scheiß die Schnauze vereisst der ist hier wohl falsch gepolt. Was bist Du denn für ein Nikolaus ? Wohl zuviel Unterschichtenfernsehen gekuckt.
> Ich hoffe Du kennst Ride von Raisonance. Nein, leider nicht. > Aber es ist im Prinzip mal egal ich wollte einfach nur wissen ob > man den printf befehl für eigene Ausgaben nutzbar machen kann, Nun, wenn du eine allgemeine Antwort willst, so lautet diese "nein". In der C-Norm ist nichts dafür vorgesehen. Einige Implementationen bieten aber dennoch eine Möglichkeit, die Ausgaben an eine selbstgeschriebene Funktion zu leiten, aber die sieht dann eben je nach Implementation unterschiedlich aus. Daher meine Frage. Schon mal in der Doku nachgelesen, ob da was dazu steht? Die Alternative ist das shcon angesprochene snprintf, mit dem du eben in einen Puffer schreibst, den du dann ausgeben kannst. Ist halt nicht so elegant wie direkt mit printf, geht aber zur Not auch. @Matthias: Ich würde die Prüfung einfach bleiben lassen und immer ans Ende das '\0' hängen. Meist braucht das if alleine schon mehr Zeit als das Schreiben dieses Bytes.
@Rolf und Matthias! Vielen Dank für euere Info und Beispiele! Wird mir sicher weiter helfen. Mfg Klaus
Danke für die Hinweise, mit sprintf läuft es jetzt. Schade, dass ein Teil der Beiträge nur Mist enthalten. MfG Wolfgang
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.