Guten Morgen
Kurz zur Erklärung. Das Display verlangt die Eingabe der Farben Rot, Grün, Blau durcj die Eingabe dieser 6 Werte.
CodeBox C
i2c_write(DOL); bcc+=DOL; // $ Vordergrund
i2c_write('F'); bcc+='F'; // Rot
i2c_write('F'); bcc+='F';
i2c_write('0'); bcc+='0'; // Grün
i2c_write('0'); bcc+='0';
i2c_write('0'); bcc+='0'; // Blau
i2c_write('0'); bcc+='0';
Eigentlich sieht es nach Hersteller Angaben so aus: $FF0000
Muss also für die Darstellung einer Farbe 6 Werte in Hex übertragen. Das ganze muss ich mehrfach machen für Farbe Vordergrund, Transparent Vordergrung, Farbe Hintergrung und Transparenz Hintergrund.
Mann könnte es so machen:
CodeBox C
// YDC - TFM_Farbeinstellung
// VR1-Vordergrund Rot, VG1-Vordergrund Grün, VB1-Vordergrund Blau, VT-Vordergrund Transparenz
// VR2-Vordergrund Rot, VG2-Vordergrund Grün, VB2-Vordergrund Blau, VT-Vordergrund Transparenz
// HR1-Hintergrund Rot, HG1-Hintergrund Grün, HB1-Hintergrund Blau, HT-Hintergrund Transparenz
// HR2-Hintergrund Rot, HG2-Hintergrund Grün, HB2-Hintergrund Blau, HT-Hintergrund Transparenz
TFM_Farbeinstellung( VR1, VR2, VG1, VG2, VB1, VB2);
Bei dieser Angabe kann es viel Fehler geben, da sehr viel Parameter. Nehme ich die Eingabe von Windows, z.B. 210 für VR1 und VR2, übertrage ich die Farbe Rot durch die Eingabe von einer Zahl die je nach Sättigung zwischen 0 und 255 liegen darf. Das wieder 3 mal für die Farbe Vordergrund.
Die Zahl 210 ist in Hex 0xD2. Jetzt besteht die Möglichkeit der falschen Eingabe. Die Hex Werte sind für
0 - 9 > 0x30 bis 0x39
A - F > 0x41 bis 0x46
für die Eingabe der 3 Farben möchte ich es so machen
TFM_Farbeinstellung( 255, 0, 0);
Diese 3 Werte muss ich danach in Hex umrechnen und kontrollieren ob die Einstellung korrekt ist. Es besteht ja die Möglichkeit das statt 255 auch 256 eingeben könnte. Dann brauche ich die Kontrolle und Begrenzung auf 255. Das ist wahrscheinlich das kleinste Problem.
Bei der Übergabe brauche ich teilweise bis zu 30 Parameter, was teilweise kompliziert ist.
Das Display ist eine uniTFT von EA mit 64 Millionen Farben, gefühlte 200 Befehle, einem eigenen Prozessor und Übertragung mit dem I2C Bus und Prüfsummen bildung.
Hoffe das ich mich Verständlich ausgedrückt habe
achim