bittebittebitte mal selber testen!
- - - Aktualisiert - - -
...ach so, jetzt habe ich deinen Einwand verstanden!
Klammer ums ganze, dann erst casten!
- - - Aktualisiert - - -
nein, stimmt auch nicht dann.
bittebittebitte mal selber testen!
- - - Aktualisiert - - -
...ach so, jetzt habe ich deinen Einwand verstanden!
Klammer ums ganze, dann erst casten!
- - - Aktualisiert - - -
nein, stimmt auch nicht dann.
Schau noch mal im letzten Beitrag vor Deinem. Habe es geändert.
Allerdings glaube ich auch, dass dasüberflüssig ist. Weil der kleinste Typ, den der Arduino kennt, ist: integerCode:R = (uint8_t)R;
Er würde den von Dir geglaubten 8-Bit-Wert vermutlich als Integer ablegen/speichern. So, wie er nach der Berechnung schon vorliegt.
das habe ich verstanden und auch so gemacht.
aber nein, der kleinste Wert ist uint16_t , nicht int, denn int ist bei mir int32_t (ARM Cortex M0 = Arduino M0/Zero), deshalb ist es immer explizit auf uint16_t oder uint8_t gecastet.
Tipps sind wirklich sehr willkomen, aber bitte immer vorher selber testen!
Na ja, ich hatte geschrieben: "vermutlich" und vorher schon, dass ich mich mit den Typen nicht so genau bei den Teilen auskenne.
Aber um das aufzuklären: Gibt es noch ein Problem?
Und welchen Tipp sollte ich testen - was soll ich da testen? - k.A.
![]()
Der Code soll mit dem expliziten Casting damit eben auch auf 8bit Arduinos lauffähig sein.
Teste einfach meinen Testcode, in den du deine Algorithmen einsetzt, du bekommst dann ja über Serial die Debug-Informationen zur Kontrolle.
Da habe ich noch byte gefunden:
Code:R = byte((color16 / 2048)*8); G = byte((color16 & 2016)/8); B = byte((color16 & 31)*8);
das ist doch wurscht, byte == uint8_t
bitte testen und Serial Meldungen posten!
Spuckt genau dasselbe aus.
Falls der Controller nur 8 Bit beherrschen würde, müsste man die 16-Bit-Farbwerte getrennt in Low- und High-Byte (MSB und LSB) ablegen und anders rechnen.
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=100 B=72 Hauptprogramm nach col16 zu rgb: col16=64297 r=248 g=100 b=72
Lesezeichen