Arduino HEX Farbcode zu RGB

Hi,

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 :wink:

MFG

Du solltest du Funktionen auch richtig benennen:

http://www.cplusplus.com/reference/cstdlib/strtol/?kw=strtol
http://www.cplusplus.com/reference/cstdlib/strtoul/

Und statt toCharArray() nimmt bei sowas besser c_str():

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.