mit sprintf(), snprintf() und dtostrf() so wie immer gut erklärt für ein wenig eingearbeitete Anfänger. Ist nicht so einfach wie blinkende LED, trotzdem nicht so "trocken" wie andere Seiten, wie immer ist das nur meine Meinung
Gruß Bernhard
mit sprintf(), snprintf() und dtostrf() so wie immer gut erklärt für ein wenig eingearbeitete Anfänger. Ist nicht so einfach wie blinkende LED, trotzdem nicht so "trocken" wie andere Seiten, wie immer ist das nur meine Meinung
Gruß Bernhard
Informativer Beitrag, besonders für Anfänger. Danke für den Link.
Evtl. fehlt die Info über Serial.printf, dass auf ESP verfügbar ist (oder ich habe es überlesen).
Den Link sollten sich viele abspeichern.
Gruß Tommy
Habe mir das genauer angeschaut, hast mich neugierig gemacht.
Doch, es wird nur kurz erwähnt.
" In der Tat könnt ihr auf manchen Mikrocontrollerboards (z.B. ESP32) dazu die Funktion Serial.printf()
nutzen, allerdings, z. B., nicht auf den klassischen AVR-basierten Arduinos."
Gruß Bernhard
Danke, dann habe ich das übersehen.
Gruß Tommy
Hmmm....
Bei Wolle steht leider nicht, wie man printf mit Arduinos nutzen kann.
Also hier mal die nötige Ergänzung:
int writeChar(char c, FILE *)
{
return !Serial.write(c);
}
int readChar(FILE *)
{
int c;
while(-1 == (c=Serial.read()));
return c;
}
FILE stdiostream;
void setup()
{
fdev_setup_stream(&stdiostream, writeChar, readChar, _FDEV_SETUP_RW);
stdin = stdout = stderr = &stdiostream;
Serial.begin(9600);
signed value = 72;
printf("testHex 0x%02X\r\n",value);
printf("testDezimal %02d\r\n",value);
}
void loop()
{
}
Wolle hat sehr viele, leicht verständliche, Themen. Mir hat er schon oft geholfen, Dinge besser zu verstehen.
Ja!
Manches ist allerdings zu vereinfacht.
Auch bei seinen Texten lohnt es sich, ab und an, weitere Doku zu lesen, bzw. das Hirn einzuschalten.
Beispiel:
Insbesondere:
Falls das Board eurer Wahl
printf()
unterstützt
Diese "Falschaussage"/Ungenauigkeit, habe ich mit meinem Beitrag widerlegt.
Nicht mehr und auch nicht weniger.
Denn diese Unterstützung kann man selber herstellen, wenn man Libc Doku gelesen hat.
Was nützt einem ein Wissender, der nicht fähig ist selbiges zu vermitteln, und Antworten auf Fragen wie das Orakel von Delphi klingen?
Dann lieber jemand der fähig ist, Wissen zu vermitteln, und dafür auf vereinfachende Erklärungen zurückgreift.
In der Wissenschaftskommunikation wird auch vereinfacht. Hat man selbst entsprechendes Wissen angehäuft, greift man auch auf entsprechende Dokumentation zurück.
Dort wird extensiv mit Quellenangaben gearbeitet.
Unbelegte Behauptungen werden zerrissen.
Dort wird extensiv mit Quellenangaben gearbeitet.
Bei Wolle fehlt mir hier der Hinweis auf die Libc, wo nämlich steht, wie man printf zum laufen bekommt, und wie man printf die float Ausgabe auf AVR bei bringt.
Wenn man Wolles Artikel liest, scheint er den Eindruck vermitteln zu wollen, dass printf nicht von den AVR Arduinos unterstürzt wird.
Falls das Board eurer Wahl
printf()
unterstützt
Wird es aber.
Hallo,
ich bin mir sicher Wolle meint das anders.
Eben das printf nicht standardmäßig einfach so vorhanden bzw. nutzbar ist.
Es ist Standardmäßig vorhanden.
Aber nicht nutzbar, weil kein BS vorhanden, bzw. Startupcode es nicht etabliert.
Wolles Artikel verführt eher dazu printf auf Arduinos zu ignorieren, als "Inspiration" zu liefern, sich da kundig zu machen.
Das finde ich schade!
Natürlich kritisiere ich nicht nur, sondern liefere auch die Abhilfe.
Danke dafür, mein Mega2560 akzeptiert es, ich freue mich
testHex 0x48
testDezimal 72
Ich habe Wolle auf dieses Thema aufmerksam gemacht. Möglicherweise wird er seinen Artikel daraufhin präzisieren. Dann hätten noch mehr Leser Nutzen davon.
Das hat ja mal geklappt!
Meinen Dank an dich und natürlich auch an Wolle.