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 ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

Ecran LCD ILI9341 pour les nuls en assembleur
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#51 Message par francois77 » mer. 22 févr. 2023 11:32

Bonjour Paul,

Je pense avoir trouvé la réponse a notre question

Un écran = dalle + éclairage led

Pour éteindre la dalle c'est la fonction 0X28

Pour éteindre l'éclairage il suffit de mettre à 0 la commande de la LED via un port du PIC. et pour le feun, garder la résistance en 5v ou 3.3v

A+
Francois

Ecran LCD ILI9341 pour les nuls en assembleur
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#52 Message par francois77 » lun. 27 févr. 2023 18:32

Bonsoir,

j'ai soldé le fonctionnement de mes écrans pour l'instant de façon primaire

Je tente de comprendre le codage des couleurs

Capture.PNG


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
gwion
Amateur
Amateur
Messages : 192
Enregistré en : février 2022

#53 Message par gwion » lun. 27 févr. 2023 19:54

Bonsoir François,

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

On peut mettre plus de nuances de vert car l'oeil y est plus sensible.

Bruno

Ecran LCD ILI9341 pour les nuls en assembleur
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#54 Message par francois77 » lun. 27 févr. 2023 20:24

Bonjour Bruno,

Merci pour le retour d'info

Je viens a l'instant d'arriver au même résultat a force de faire des essais :mur:

j'avais un doute sur le bit 0 du vert

Reste a trouver si c'est une échelle linéaire ou pas. je ferais des essais demain

j'ai rien trouvé sur le net pour les explications

A+
Francois

Ecran LCD ILI9341 pour les nuls en assembleur
gwion
Amateur
Amateur
Messages : 192
Enregistré en : février 2022

#55 Message par gwion » lun. 27 févr. 2023 20:57

En général on parle du codage R5G6B5 ou 565 si tu veux chercher plus d'infos.
C'est fatalement moins linéaire que le RVB classique. Mais sur ce genre d'écran les couleurs ne doivent pas être d'une fidélité absolue.

Ecran LCD ILI9341 pour les nuls en assembleur
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#56 Message par Temps-x » mar. 28 févr. 2023 02:25

Bonsoir francois77, gwion, et tout le forum,

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+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Ecran LCD ILI9341 pour les nuls en assembleur
gwion
Amateur
Amateur
Messages : 192
Enregistré en : février 2022

#57 Message par gwion » mar. 28 févr. 2023 07:00

Bonjour tout le monde,

Un convertisseur en ligne : https://trolsoft.ru/en/articles/rgb565-color-picker

Ecran LCD ILI9341 pour les nuls en assembleur
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#58 Message par francois77 » mar. 28 févr. 2023 07:05

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

Ecran LCD ILI9341 pour les nuls en assembleur
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#59 Message par satinas » mar. 28 févr. 2023 08:49

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.

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
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#60 Message par paulfjujo » mar. 28 févr. 2023 18:00

bonsoir,

idea ! merçi Satinas


pour info
Pour les rubans à led ..et suivant les références,
il y a aussi le RBV Rouge Bleu Vert ( Red Blue Green)
bleu et vert inversé!
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Babar64 et 51 invités