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
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Bonsoir, c'est un bon début, il y a de l'espoir :)
Si tu peux piloter le reset, autant l'utiliser -> high 10ms, low 10ms, high, wait 100ms et on démarre
mets un nop juste apres le clr/set LCD_RS
pourquoi fais-tu 2 pulses LCD_WR ? il en faut qu'une
pour le rectangle dans la boucle tu n'envoies que la moitié de la couleur, il manque un morceau
C'est 861 pas 81, et les coordonnées sont en décimales, c'est movlw d'20', pas molw 0x20
pourquoi pas 2 macros SendCmd et SenData qui regrouperaient le molw et le rcall
Ca fait longtemps que j'ai plus fait de l'asm ...
Si tu peux piloter le reset, autant l'utiliser -> high 10ms, low 10ms, high, wait 100ms et on démarre
mets un nop juste apres le clr/set LCD_RS
pourquoi fais-tu 2 pulses LCD_WR ? il en faut qu'une
pour le rectangle dans la boucle tu n'envoies que la moitié de la couleur, il manque un morceau
C'est 861 pas 81, et les coordonnées sont en décimales, c'est movlw d'20', pas molw 0x20
pourquoi pas 2 macros SendCmd et SenData qui regrouperaient le molw et le rcall
Ca fait longtemps que j'ai plus fait de l'asm ...
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Bonsoir satinas
D'accord pour les nop , les décimales et la boucle,je modifie cela demain soir
les deux pulses ? Pour simuler les bits 15:8 puis 7:0. J'ai fait sans, puis avec , puis avec envoie de 0x00 et ensuite des bits 7:0
Pour la couleur je n'ai pas compris l'histoire de la moitié
Je n'ai aucune donnée de cet afficheur mais si j'inverse toutes les commandes, (wr,rs, ds,rd) et que je met rst a la masse, j'arrive a allumer et éteindre l'écran. J'ai l'impression qu'il fonctionne à l'inverse pour l'adapter a l'arduino (il y a un 74hc245T qui inverse les bits voir explication de temps-x plus haut)
Cela n'est qu'une supposition pour l'instant
Dans tout les cas
D'accord pour les nop , les décimales et la boucle,je modifie cela demain soir
les deux pulses ? Pour simuler les bits 15:8 puis 7:0. J'ai fait sans, puis avec , puis avec envoie de 0x00 et ensuite des bits 7:0
Pour la couleur je n'ai pas compris l'histoire de la moitié
Je n'ai aucune donnée de cet afficheur mais si j'inverse toutes les commandes, (wr,rs, ds,rd) et que je met rst a la masse, j'arrive a allumer et éteindre l'écran. J'ai l'impression qu'il fonctionne à l'inverse pour l'adapter a l'arduino (il y a un 74hc245T qui inverse les bits voir explication de temps-x plus haut)
Cela n'est qu'une supposition pour l'instant
Dans tout les cas
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Bonjour,
La communication se fait octet par octet, on dépose un octet sur le port, et on baisse LCD_WR (durée min 33ns d'après la doc). Si tu le baisses 2 fois, tu envoies 2 fois le même octet.
Le controleur attend un octet commande suivi de 0 à 4 octets data, selon le type de commande.
Exception, la commande 0x2c, write graphic ram, où l'on envoie des couleurs, après avoir défini la fenêtre rectangulaire d'écriture par 2 points.
Si on veut effacer l'écran en noir, on enverra 320*240 = 76800 couleurs 16 bits 0x0000, soit 153600 octets nuls. Vaut mieux que ça aille vite .. (dans ce cas on peut avoir des pulses write à la queue-leu-leu car on envoie toujours le même octet)
Lorsque tu affiches le pixel simple, tu envoies les coordonnées du rectangle de côtés 1*1 qu'il constitue. Ensuite tu envoies la couleur rouge rgb565 (valeur 0xf800) du seul point contenu dans ce rectangle. La couleur étant 16 bits, on l'envoie en 2 fois, d'abord les bits 15->8 ensuite les bits 7->0
Lorsque tu affiches le rectangle plein délimité par les points (20,30) et (40,70), pareil, tu envoies les coordonnées des 2 points. Ensuite tu envoies les 21*41 = 861 couleurs de tous les points de ce rectangle. Donc tu envoies 861 fois la couleur rouge si le rectangle est rouge. On peut aussi envoyer des couleurs aléatoires, et on aura un rectangle multicolore.
Dans ta boucle, il manque l'envoi des bits 7->0 de la couleur
La différence entre ILI9341 et ILI9342 est minime, l'un gère un lcd 240x320, l'autre 320x240, ça devrait pas poser de problème.
Mais bon, on a supposé que tu as un ILI9342, c'est un peu hasardeux, mais faut y croire.
https://www.eevblog.com/forum/microcont ... -please-!/
Lorsque tu resettes l'écran, il démarre en blanc, le pixel ne sera pas très visible, par contre le rectangle rouge tu peux pas le louper.
La communication se fait octet par octet, on dépose un octet sur le port, et on baisse LCD_WR (durée min 33ns d'après la doc). Si tu le baisses 2 fois, tu envoies 2 fois le même octet.
Le controleur attend un octet commande suivi de 0 à 4 octets data, selon le type de commande.
Exception, la commande 0x2c, write graphic ram, où l'on envoie des couleurs, après avoir défini la fenêtre rectangulaire d'écriture par 2 points.
Si on veut effacer l'écran en noir, on enverra 320*240 = 76800 couleurs 16 bits 0x0000, soit 153600 octets nuls. Vaut mieux que ça aille vite .. (dans ce cas on peut avoir des pulses write à la queue-leu-leu car on envoie toujours le même octet)
Lorsque tu affiches le pixel simple, tu envoies les coordonnées du rectangle de côtés 1*1 qu'il constitue. Ensuite tu envoies la couleur rouge rgb565 (valeur 0xf800) du seul point contenu dans ce rectangle. La couleur étant 16 bits, on l'envoie en 2 fois, d'abord les bits 15->8 ensuite les bits 7->0
Code : Tout sélectionner
movlw 0xF8 ; 15->8
rcall Envoi_data
movlw 0x00 ; 7->0
rcall Envoi_data
Lorsque tu affiches le rectangle plein délimité par les points (20,30) et (40,70), pareil, tu envoies les coordonnées des 2 points. Ensuite tu envoies les 21*41 = 861 couleurs de tous les points de ce rectangle. Donc tu envoies 861 fois la couleur rouge si le rectangle est rouge. On peut aussi envoyer des couleurs aléatoires, et on aura un rectangle multicolore.
Dans ta boucle, il manque l'envoi des bits 7->0 de la couleur
Code : Tout sélectionner
movlw 0x00 ; 7->0
rcall Envoi_data
La différence entre ILI9341 et ILI9342 est minime, l'un gère un lcd 240x320, l'autre 320x240, ça devrait pas poser de problème.
Mais bon, on a supposé que tu as un ILI9342, c'est un peu hasardeux, mais faut y croire.
https://www.eevblog.com/forum/microcont ... -please-!/
Lorsque tu resettes l'écran, il démarre en blanc, le pixel ne sera pas très visible, par contre le rectangle rouge tu peux pas le louper.
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Bonsoir Satinas et Temps-x
Histoire de donner des nouvelles, j'ai corrigé les remarques des posts plus hauts, pour les macros j'attends de voir le programme tourner car pour l'instant c'est choux blanc
Voici apres une multitude d'essai se qui reste du programme
j'ai exactement le même programme mais avec les bits de commande inversés histoire d'avoir tout essayer
Histoire de donner des nouvelles, j'ai corrigé les remarques des posts plus hauts, pour les macros j'attends de voir le programme tourner car pour l'instant c'est choux blanc
Voici apres une multitude d'essai se qui reste du programme
Code : Tout sélectionner
;*****************************************************************
debut_y
bsf LCD_WR ; envoi normal
bsf LCD_RD
bsf LCD_RST
movlw D'216'
movwf c1 ; boucle pour write graphic in ram
movlw D'4'
movwf c2
movlw D'110'
movwf c01
bcf LCD_CS
Tempo_10ms .10
movlw 0x01 ; reset
rcall Envoi_cmdy
bsf LCD_RS
bsf LCD_CS
Tempo_10ms .100
bcf LCD_CS
; movlw 0x00
; rcall Envoi_cmdy
; bsf LCD_RS
movlw 0x3A ; colmod
rcall Envoi_cmdy
bsf LCD_RS
movlw 0x55 ; 16 bits/pixel 65K couleurs rgb 565 '1010101'
rcall Envoi_datay
movlw 0x20 ; inverse vidéo off
rcall Envoi_cmdy
bsf LCD_RS
movlw 0x11 ; sleep out
rcall Envoi_cmdy
bsf LCD_RS
bsf LCD_CS
Tempo_10ms .100
bcf LCD_CS
movlw 0x29 ; ecran on
rcall Envoi_cmdy
bsf LCD_RS
movlw 0x36 ; Memory access control
rcall Envoi_cmdy
movlw 0x88 ; set orientation '10001000'
rcall Envoi_datay
bsf LCD_CS
Tempo_10ms .100
bcf LCD_CS
movlw 0x2A ; set colonne adress
rcall Envoi_cmdy
movlw 0x00
rcall Envoi_datay
movlw D'10'
rcall Envoi_datay
movlw 0x00
rcall Envoi_datay
movlw D'10'
rcall Envoi_datay
movlw 0x2B ; set page
rcall Envoi_cmdy
movlw 0x00
rcall Envoi_datay
movlw D'20'
rcall Envoi_datay
movlw 0x00
rcall Envoi_datay
movlw D'20'
rcall Envoi_datay
movlw 0x2C ; write graphic in ram
rcall Envoi_cmdy
boucley2
movlw 0xF8 ; 1 pixel rouge
rcall Envoi_datay
movlw 0x0F
rcall Envoi_datay
; decfsz c01,f
; bra boucley2
bsf LCD_CS
Tempo_10ms .100
bcf LCD_CS
movlw 0x2A ; set colonne adress
rcall Envoi_cmdy
movlw 0x00
rcall Envoi_datay
movlw D'20'
rcall Envoi_datay
movlw 0x00
rcall Envoi_datay
movlw D'40'
rcall Envoi_datay
movlw 0x2B ; page adress
rcall Envoi_cmdy
movlw 0x00
rcall Envoi_datay
movlw D'30'
rcall Envoi_datay
movlw 0x00
rcall Envoi_datay
movlw D'70'
rcall Envoi_datay
movlw 0x2C ; write graphic in ram
rcall Envoi_cmdy
bsf LCD_RS
boucley
movlw 0xF8 ; 1 pixel rouge
rcall Envoi_datay
movlw 0x00
rcall Envoi_datay
decfsz c1,f
bra boucley
decfsz c2,f
bra sauty
bra boucle_finy
sauty
movlw D'215'
movwf c1
bra boucley
boucle_finy
bsf LCD_CS
Tempo_10ms .100
finy
bra finy
Envoi_cmdy
movwf LATD
bcf LCD_RS
nop
bcf LCD_WR
nop
nop
nop
nop
bsf LCD_WR
nop
nop
nop
nop
nop
bsf LCD_RS
nop
nop
nop
nop
nop
nop
return
Envoi_datay
movwf LATD
bsf LCD_RS
nop
bcf LCD_WR
nop
nop
nop
nop
bsf LCD_WR
nop
nop
nop
nop
nop
nop
nop
nop
return
j'ai exactement le même programme mais avec les bits de commande inversés histoire d'avoir tout essayer
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Bonsoir Satinas et JMarc, et tous le forum,
Déjà je tiens à remercier satinas pour l'aide quelle apporte, et JMarc pour c'est effort, malheureusement je suis pas
en mesure de t'aider, j'ai pas l'écran
Je vous tiens au courant de mon coté, j'ai toujours rien reçu de la par de la poste , et pourtant, JMarc, et moi même,
on la commandé le même jour, à la même heure, à quelque chose près.
Je tire une conclusion, c'est que l'écran est bien arrivé en France, mais coté poste, il y a pas mal de gens mal attentionné, Il suffit de lire
certain forum pour se rendre compte, comme celui-ci : https://forum.quechoisir.org/colis-vena ... 49396.html
Les colis dans certain bureau de poste disparaisse, et rien n'est fais pour empêcher cela, ça vient de chine alors pourquoi pas, hein ....
Heureusement tous les bureaux de poste son pas comme cela, certain son très respectueux, généralement ça vient du gérant
qui laisse faire.
Pour revenir HD74HCT245, je vais un fichier animé pour bien saisir comment il fonctionne, si ça peu aider certain gens j'en
serais ravis, ne t’inquiète pas JMarc on vas y arrivé.
PS: regarde la vitesse de ton quart, à combien tu tournes ?
A+
Déjà je tiens à remercier satinas pour l'aide quelle apporte, et JMarc pour c'est effort, malheureusement je suis pas
en mesure de t'aider, j'ai pas l'écran
Je vous tiens au courant de mon coté, j'ai toujours rien reçu de la par de la poste , et pourtant, JMarc, et moi même,
on la commandé le même jour, à la même heure, à quelque chose près.
Je tire une conclusion, c'est que l'écran est bien arrivé en France, mais coté poste, il y a pas mal de gens mal attentionné, Il suffit de lire
certain forum pour se rendre compte, comme celui-ci : https://forum.quechoisir.org/colis-vena ... 49396.html
Les colis dans certain bureau de poste disparaisse, et rien n'est fais pour empêcher cela, ça vient de chine alors pourquoi pas, hein ....
Heureusement tous les bureaux de poste son pas comme cela, certain son très respectueux, généralement ça vient du gérant
qui laisse faire.
Pour revenir HD74HCT245, je vais un fichier animé pour bien saisir comment il fonctionne, si ça peu aider certain gens j'en
serais ravis, ne t’inquiète pas JMarc on vas y arrivé.
PS: regarde la vitesse de ton quart, à combien tu tournes ?
A+
Modifié en dernier par Temps-x le ven. 6 oct. 2017 21:34, modifié 1 fois.
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Faux départ pour le dernier post :)
Bonsoir tout le monde,
Il y a des vols, mais ils doivent cibler des produits de consommation grand public. le seul truc que j'ai pas reçu, c'était une boîte de rangement décorée. Ils doivent avoir un odorat développé pour sniffer le produit intéressant, à travers l'emballage. La centaine (ou plus ?) de produits électroniques commandés sont tous arrivés, avec des délais variables de 15 jours à 2 mois.
J'espère que tu le recevras, l'attente est parfois longue, je connais ça, ça démange.
Pour JMarc, rajoute la séquence reset hardware, qui est la plus efficace, et peut être indispensable, je sais plus en fait.
bsf LCD_WR ; envoi normal
bsf LCD_RD
bsf LCD_CS
bsf LCD_RST
wait 100 ms
bcf LCD_RST
wait 10 ms
bsf LCD_RST
wait 200 ms
il ne doit y avoir qu'un seul "bcf LCD_RS" et un seul "bsf LCD_RS", ceux que tu as mis en début et fin de sous-programme "Envoi_cmdy"
Tous les autres sont superflus, y compris celui dans le sous-programme "Envoi_datay"
On commence toujours par une commande, suivie de datas, donc Envoi_cmdy baisse LCD_RS, envoie la commande, et lève LCD_RS, qui est prêt pour les Envoi_datay (nombreux) qui suivent.
Le 74HCT245 doit servir pour la carte sd ou autre, il n'est pas important, ce lcd est compatible avec tous les autres lcd ayant le même brochage "Arduino". Mon lcd a les 2 mêmes circuits au même endroit.
Bonsoir tout le monde,
Il y a des vols, mais ils doivent cibler des produits de consommation grand public. le seul truc que j'ai pas reçu, c'était une boîte de rangement décorée. Ils doivent avoir un odorat développé pour sniffer le produit intéressant, à travers l'emballage. La centaine (ou plus ?) de produits électroniques commandés sont tous arrivés, avec des délais variables de 15 jours à 2 mois.
J'espère que tu le recevras, l'attente est parfois longue, je connais ça, ça démange.
Pour JMarc, rajoute la séquence reset hardware, qui est la plus efficace, et peut être indispensable, je sais plus en fait.
bsf LCD_WR ; envoi normal
bsf LCD_RD
bsf LCD_CS
bsf LCD_RST
wait 100 ms
bcf LCD_RST
wait 10 ms
bsf LCD_RST
wait 200 ms
il ne doit y avoir qu'un seul "bcf LCD_RS" et un seul "bsf LCD_RS", ceux que tu as mis en début et fin de sous-programme "Envoi_cmdy"
Tous les autres sont superflus, y compris celui dans le sous-programme "Envoi_datay"
On commence toujours par une commande, suivie de datas, donc Envoi_cmdy baisse LCD_RS, envoie la commande, et lève LCD_RS, qui est prêt pour les Envoi_datay (nombreux) qui suivent.
Le 74HCT245 doit servir pour la carte sd ou autre, il n'est pas important, ce lcd est compatible avec tous les autres lcd ayant le même brochage "Arduino". Mon lcd a les 2 mêmes circuits au même endroit.
écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Bonsoir tout le monde,
Je peux te dire, que j'ai fait des commandes qui ne sont jamais arrivés, (dans les composants électronique, avec des petites sommes),
car je dépasse rarement 15 euros, heureusement que Paypal couvre ce genre de problème.
Commandé un autre écran, je vais attendre encore, on sait jamais, je reste dans le même modèle, ça évite le SPI, mais obligatoire
pour la carte SD, je vais regarder le datasheet ce soir pour essayer de t'aider, j'ai déjà fait mais rapidement.
J'attendais l'écran
A+
Il y a des vols, mais ils doivent cibler des produits de consommation grand public
Je peux te dire, que j'ai fait des commandes qui ne sont jamais arrivés, (dans les composants électronique, avec des petites sommes),
car je dépasse rarement 15 euros, heureusement que Paypal couvre ce genre de problème.
JMarc à écrit :
Temps-x, si tu recommandes un écran, pourrait tu mettre le lien que je commande le même si tu prends un autre modèle
Commandé un autre écran, je vais attendre encore, on sait jamais, je reste dans le même modèle, ça évite le SPI, mais obligatoire
pour la carte SD, je vais regarder le datasheet ce soir pour essayer de t'aider, j'ai déjà fait mais rapidement.
J'attendais l'écran
A+
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 49 invités