danke für den Post!
ich habe jetzt neu codiert:
und bekomme jetzt den output:Code:uint16_t ColorRGB216bit(uint16_t R, uint16_t G, uint16_t B) { return ((uint16_t)R << 11) | (((uint16_t)G << 5) & 0b0000011111100000) | ((uint16_t)B & 0b0000000000011111); } void Color16bit2colorRGB(uint16_t color16, uint16_t &R, uint16_t &G, uint16_t &B) { R = (uint8_t)(color16/524288); G = (uint8_t)(color16/1024); B = (uint8_t)((color16/8)&31); 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: }
hmmmm...Code:Hauptprogramm vor Aufruf: col16=0 r=255 g=102 b=78 Hauptprogramm nach rgb zu col16-Berechnung (rgb gelöscht): col16=64718 r=0 g=0 b=0 Unterprogramm color16 zu RGB: color16=64718 R=0 G=63 B=25 Hauptprogramm nach col16 zu rgb: col16=64718 r=0 g=63 b=25![]()







Zitieren
Lesezeichen