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

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#31 Message par satinas » jeu. 5 oct. 2017 22:03

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 ...

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#32 Message par JMarc » jeu. 5 oct. 2017 23:18

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 :sifflotte:


Dans tout les cas Merci !

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#33 Message par satinas » ven. 6 oct. 2017 06:47

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

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)
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#34 Message par JMarc » ven. 6 oct. 2017 20:42

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 :cry:

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 :mur:

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#35 Message par Temps-x » ven. 6 oct. 2017 21:28

Bonsoir Satinas et JMarc, et tous le forum,

:+1:
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 :cry:

Je vous tiens au courant de mon coté, j'ai toujours rien reçu de la par de la poste :furieux:, 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é. :wink:

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

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#36 Message par satinas » ven. 6 oct. 2017 21:32

Bonsoir,
Il faut mettre un reset hardware, c'est le plus efficace.

bsf LCD_WR ; envoi normal
bsf LCD_RD
bsf LCD_CS

bsf LCD_RST
wait 100ms
bcf LCD_RST
wait 10 ms

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#37 Message par Temps-x » ven. 6 oct. 2017 21:36

Bonsoir Satinas,

J'ai lu sur certain forum, qu'il faut faire un reset à l'écran avant d'appliquer des paramètres d'envois .

A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
JMarc
Confirmé
Confirmé
Messages : 605
Enregistré en : août 2016
Localisation : Dans le Sud...

#38 Message par JMarc » ven. 6 oct. 2017 21:58

Bonsoir Satinas et Temps-x


aussitôt écrit, aussitôt essayé mais sans résultat :cry:


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

Satinas, merci pour ta patiences

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#39 Message par satinas » ven. 6 oct. 2017 22:03

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.

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2596
Enregistré en : juillet 2016
Localisation : Terre

#40 Message par Temps-x » ven. 6 oct. 2017 22:33

Bonsoir tout le monde,

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 :cry:

A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 49 invités