Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : mazertoc
Ecran LCD ILI9341 pour les nuls en assembleur
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
Ecran LCD ILI9341 pour les nuls en assembleur
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
Bonsoir,
j'ai soldé le fonctionnement de mes écrans pour l'instant de façon primaire
Je tente de comprendre le codage des couleurs
Le codage de la couleur en hexa est de la forme 0x 84 10 soit 16 bits (gris)
rouge vert bleu
10000 10000 10000
Comment on passe de 128 128 128 a 0x8410 ?
A+
Francois
j'ai soldé le fonctionnement de mes écrans pour l'instant de façon primaire
Je tente de comprendre le codage des couleurs
Le codage de la couleur en hexa est de la forme 0x 84 10 soit 16 bits (gris)
rouge vert bleu
10000 10000 10000
Comment on passe de 128 128 128 a 0x8410 ?
A+
Francois
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Ecran LCD ILI9341 pour les nuls en assembleur
Ecran LCD ILI9341 pour les nuls en assembleur
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
Ecran LCD ILI9341 pour les nuls en assembleur
Ecran LCD ILI9341 pour les nuls en assembleur
Bonsoir francois77, gwion, et tout le forum,
Tout 'a fait exacte, ce qui nous fait
- 5 bits = 31 (valeur décimal) = 00011111
- 6 bits = 63 (valeur décimal) = 00111111
- 5 bits = 31 (valeur décimal) = 00011111
Soit un total de 16 bits
Par contre dans ton fichier en post #52 est marqué par exemple
Blanc = 0xFFFF ; 255,255,255
Les 255,255,255 sont à titre indicatif, 24 bits c'est une comparaison, on faisant un peu de mathématique tu dois pouvoir retrouver toutes les couleurs.
je vais peut être écrire un petit programme pour trouvé les valeurs des couleurs pour cette écran.
A+
gwion a écrit :Source du message C'est le codage RVB en 16 bits. De la gauche vers la droite tu vas trouver :
- 5 bits pour le rouge
- 6 bits pour le vert
- 5 bits pour le bleu
Tout 'a fait exacte, ce qui nous fait
- 5 bits = 31 (valeur décimal) = 00011111
- 6 bits = 63 (valeur décimal) = 00111111
- 5 bits = 31 (valeur décimal) = 00011111
Soit un total de 16 bits
Par contre dans ton fichier en post #52 est marqué par exemple
Blanc = 0xFFFF ; 255,255,255
Les 255,255,255 sont à titre indicatif, 24 bits c'est une comparaison, on faisant un peu de mathématique tu dois pouvoir retrouver toutes les couleurs.
je vais peut être écrire un petit programme pour trouvé les valeurs des couleurs pour cette écran.
A+
Ecran LCD ILI9341 pour les nuls en assembleur
Bonjour tout le monde,
Un convertisseur en ligne : https://trolsoft.ru/en/articles/rgb565-color-picker
Un convertisseur en ligne : https://trolsoft.ru/en/articles/rgb565-color-picker
Ecran LCD ILI9341 pour les nuls en assembleur
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
Bonjour a tous
j'ai trouvé celui-là avec les explications
http://www.barth-dev.de/online/rgb565-color-picker/
Merci a tous
Bonne journée
j'ai trouvé celui-là avec les explications
http://www.barth-dev.de/online/rgb565-color-picker/
Merci a tous
Bonne journée
Ecran LCD ILI9341 pour les nuls en assembleur
Bonjour tous,
Bon courage pour les conversions :)
Voilà ce que j'avais écrit à l'époque des lcds en tout genre.
Encore des macros, on peut aussi faire une fonction ou un sous-programme.
A vérifier et peut être optimiser. La conversion de RGB888 vers RGB565 est nécessaire pour l'affichage des BMP couleur entre autres.
Bon courage pour les conversions :)
Voilà ce que j'avais écrit à l'époque des lcds en tout genre.
Encore des macros, on peut aussi faire une fonction ou un sous-programme.
Code : Tout sélectionner
colors.h:#define RGB1555_TO_RGB565(u) ((((u)<<1)&0xffc0)|((u)&0x1f)) // RGB1555 -> RGB565 .rrrrrgggggbbbbb -> rrrrrggggg0bbbbb
colors.h:#define RGB565_TO_RGB1555(u) ((((u)>>1)&0x7fe0)|((u)&0x1f)) // RGB565 -> RGB1555 rrrrrggggg.bbbbb -> 0rrrrrgggggbbbbb
colors.h:#define RGB565(r,g,b) (unsigned int)(((r>>3)<<11)|((g>>2)<<5)|(b>>3)) // R8 G8 B8 -> RGB565 rrrrr... gggggg.. bbbbb... -> rrrrrggggggbbbbb
colors.h:#define RGB565H(r,g) ((r&0xf8)|(g>>5)) // R8 G8 -> RGB565h rrrrr... ggg..... -> rrrrrggg
colors.h:#define RGB565L(g,b) (((g&0x1c)<<3)|(b>>3)) // G8 B8 -> RGB565l ...ggg.. bbbbb... -> gggbbbbb
colors.h:#define RGB565_TO_R8(u) (((u)>>8)&0xf8) // RGB565 -> R8 rrrrrggggggbbbbb -> rrrrr000
colors.h:#define RGB565_TO_G8(u) (((u)>>3)&0xfc) // RGB565 -> G8 rrrrrggggggbbbbb -> gggggg00
colors.h:#define RGB565_TO_B8(u) (((u)<<3)&0xf8) // RGB565 -> B8 rrrrrggggggbbbbb -> bbbbb000
#define CLR_BLACK RGB565(0, 0, 0) // 0x0000 // noir
#define CLR_GRAY6 RGB565(32, 32, 32) // 0x2104 // gris 6
#define CLR_DARKGRAY RGB565(64, 64, 64) // 0x4208 // gris foncé
#define CLR_GRAY5 RGB565(64, 64, 64) // 0x4208 // gris 5
#define CLR_GRAY4 RGB565(96, 96, 96) // 0x630C // gris 4
#define CLR_LIGHTGRAY RGB565(128, 128, 128) // 0x8410 // gris clair
#define CLR_GRAY3 RGB565(128, 128, 128) // 0x8410 // gris 3
#define CLR_GRAY2 RGB565(160, 160, 160) // 0xA514 // gris 2
#define CLR_GRAY1 RGB565(192, 192, 192) // 0xC618 // gris 1
#define CLR_GRAY0 RGB565(224, 224, 224) // 0xE71C // gris 0
#define CLR_WHITE RGB565(248, 252, 248) // 0xFFFF // blanc
#define CLR_RED RGB565(248, 0, 0) // 0xF800 // rouge (5bit)
#define CLR_GREEN RGB565(0, 252, 0) // 0x07E0 // vert (6bit)
#define CLR_BLUE RGB565(0, 0, 248) // 0x001F // bleu (5bit)
#define CLR_DARKRED RGB565(128, 0, 0) // 0x8000 // rouge foncé
#define CLR_DARKGREEN RGB565(0, 128, 0) // 0x0400 // vert foncé
#define CLR_DARKBLUE RGB565(0, 0, 128) // 0x0010 // bleu foncé
#define CLR_DARKCYAN RGB565(0, 128, 128) // 0x0410 // cyan foncé
#define CLR_CYAN RGB565(0, 252, 248) // 0x07FF // cyan
#define CLR_DARKMAGENTA RGB565(128, 0, 128) // 0x8010 // magenta foncé
#define CLR_MAGENTA RGB565(248, 0, 248) // 0xF81F // rose
#define CLR_DARKYELLOW RGB565(200, 200, 0) // 0xCE40 // jaune foncé
#define CLR_YELLOW RGB565(248, 252, 0) // 0xFFE0 // jaune
#define CLR_ORANGE1 RGB565(248, 128, 0) // 0xFC00 // orange
#define CLR_ORANGE2 RGB565(248, 160, 0) // 0xFD00 // orange
#define CLR_BROWN RGB565(128, 48, 0) // 0x8180 // marron
#define CLR_LIGHTRED RGB565(248, 128, 128) // 0xFC10 // rose clair
#define CLR_LIGHTGREEN RGB565(128, 252, 128) // 0x87F0 // vert clair
#define CLR_LIGHTBLUE RGB565(128, 128, 248) // 0x841F // bleu clair
#define CLR_LIGHTCYAN RGB565(128, 252, 248) // 0x87FF // cyan clair
#define CLR_LIGHTMAGENTA RGB565(248, 128, 248) // 0xFC1F // magenta clair
#define CLR_GREENYELLOW RGB565(176, 252, 48) // 0xB7E3 // vert jaune
A vérifier et peut être optimiser. La conversion de RGB888 vers RGB565 est nécessaire pour l'affichage des BMP couleur entre autres.
Ecran LCD ILI9341 pour les nuls en assembleur
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités