hast du das mal selber getestet? Ich hatte doch den Arduino Code gepostet...
Code:uint16_t ColorRGB216bit(uint16_t R, uint16_t G, uint16_t B) { return ((R/8)*2048) | ((G/4)*32) | (B/8); } void Color16bit2colorRGB(uint16_t color16, uint16_t &R, uint16_t &G, uint16_t &B) { R = (uint8_t)(color16 / 2048)*8; G = (uint8_t)(color16 & 2016)/8; B = (uint8_t)(color16 &31)*8; Serial.println(""); Serial.println("Unterprogramm color16 zu RGB:"); Serial.println( (String)"color16="+(String)color16); Serial.println( (String)"R="+(String)R); Serial.println( (String)"G="+(String)G); Serial.println( (String)"B="+(String)B); } void setup() { // put your setup code here, to run once: uint16_t r=255, g=102, b=78, col16=0; // 0xFF66B2; // Dark Pink (255,102,78) Serial.begin(115200); delay(3000); Serial.println("Hauptprogramm vor Aufruf:"); Serial.println( (String)"col16="+(String)col16); Serial.println( (String)"r="+(String)r); Serial.println( (String)"g="+(String)g); Serial.println( (String)"b="+(String)b); Serial.println(""); col16=ColorRGB216bit(r,g,b); r=g=b=0; // Rücksetzen! Serial.println("Hauptprogramm nach rgb zu col16-Berechnung (rgb gelöscht):"); Serial.println( (String)"col16="+(String)col16); Serial.println( (String)"r="+(String)r); Serial.println( (String)"g="+(String)g); Serial.println( (String)"b="+(String)b); Color16bit2colorRGB(col16, r, g, b); Serial.println(""); Serial.println("Hauptprogramm nach col16 zu rgb:"); Serial.println( (String)"col16="+(String)col16); Serial.println( (String)"r="+(String)r); Serial.println( (String)"g="+(String)g); Serial.println( (String)"b="+(String)b); } void loop() { // put your main code here, to run repeatedly: }
ergibt:
Teste doch bitte mal selber, sei so nett...Code:Hauptprogramm vor Aufruf: col16=0 r=255 g=102 b=78 Hauptprogramm nach rgb zu col16-Berechnung (rgb gelöscht): col16=64297 r=0 g=0 b=0 Unterprogramm color16 zu RGB: color16=64297 R=248 G=4 B=72 Hauptprogramm nach col16 zu rgb: col16=64297 r=248 g=4 b=72![]()







Zitieren

Lesezeichen