ich bekomme von meinen WebUI einen HEX Farbwert als String wie z.B. "FFFF00".
Nun brauche ich für weitere Berechnungen jedoch die Farbe im RGB-Farbcode. Lösungen aus diesen Forum wie:
char charbuf[8];
farbe1.toCharArray(charbuf,8);
long int rgb=stol(charbuf,0,16); //=>rgb=0x001234FE;
byte r=(byte)(rgb>>16);
byte g=(byte)(rgb>>8);
byte b=(byte)(rgb);
Serial.print("R: ");Serial.println(r);
Serial.print("G: ");Serial.println(g);
Serial.print("B: ");Serial.println(b);
funktionieren bei mir jedoch nicht, da folgender Fehler erscheint "error: 'stol' was not declared in this scope".
Ich weiß nicht weiter, da ich irgendwie nichts zu diesen Fehler finde und auch keine andere funktionierende Umrechnung finden kann.
Ich freue mich also über alle Antworten
Ok danke das ging jetzt schnell xD
Ich habe keinen Plan von dieser Funktion habe sie nur aus einen anderen Forumeintrag kopiert erklärt natürlich das die nicht geht wenn die falsch geschrieben ist, jetzt funktioniert alles prima.
Und danke für den Tipp mit c_srt() werde ich machen
Der Typ "String" sollte auf den kleineren Arduinos, mit weniger als 20kB RAM, tunlichst nicht verwendet werden. Sonst kann Speicherfragmentierung zu seltsamen Fehlern führen. Das gilt auch für Klassen mit dynamisch erzeugten Objekten (new ...), die tunlichst statisch angelegt werden sollten.
Zum Extrahieren der RGB Bytes kann auch eine "union" verwendet werden, mit unterschiedlichen Ansichten der Bytes als int bzw. bytes.