Salut j'ai un petit souci en regardant de plus prés les couleur que me donné mon ecrant je remarque quelque chose de bizard sur la generation d'un nuancier de couleur
mon ecrant est un itdb02 5" et j'utilise la librairie UTFT.h
le code pour genere mon nuancier est le suivant :
int x=100;
int X=100;
int y=100;
byte R=0;
byte G=0;
byte B=0;
int ct=0;
for (R=0; R<255; R++){
lcd.setColor( R, G, B);
lcd.drawRect( X, y,X+1,y+50);
ct++;
X=x+(2*ct);
};
ct=0;
X=100;
R=0;
for (G=0; G<255; G++){
lcd.setColor( R, G, B);
lcd.drawRect( X, y+50,X+1,y+100);
ct++;
X=x+(2*ct);
};
X=100;
ct=0;
G=0;
for (B=0; B<255; B++){
lcd.setColor( R, G, B);
lcd.drawRect( X, y+100,X+1,y+150);
ct++;
X=x+(2*ct);
};
X=100;
ct=0;
B=0;
et la photo du nuancier en piece jointe.
on remarque que le rouge et le bleu ne s'etale pas corectement et je pense que c'est ce qui me pose des souci de couleur .
en regardant dans la librairie j'ai trouve la partie de code qui code sur 16 bit le melange des trois couleur RGB et je me demander si mon souci ne venai pas de la :
void UTFT::setPixel(byte r,byte g,byte b)
{
LCD_Write_DATA(((r&248)|g>>5),((g&28)<<3|b>>3)); // rrrrrggggggbbbbb
}
le probleme c'est que je pige pas le bout de code ((r&248)|g>>5),((g&28)<<3|b>>3), si j'ai bien compris le commentaire le rouge est coder sur 5 bit le ver sur 6 et le bleu sur 5 donc 16 au total mais
ne faut til pas 24 bit (3x8) pour le coder correctement ?
quelqu'un peut t'il m'expliqué le bout de code s'il vous plais je comprend rien a la manipulation des doné en bit!!
autre question il y a t'il un rapport entre le 16 du bus de doner et le 16 du couleur en 16 bit ou est ce que je peut envoyer des donner de couleur sour forme de 24bit (apres configuration de l'ecran), car je buche pas mal sur la doc technique mais c'est pas simple pour un novice!