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)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2913
Enregistré en : juillet 2016
Localisation : Terre

#91 Message par Temps-x » dim. 8 oct. 2017 19:33

Bonsoir tous le monde,

satinas à écrit :

Garde le moral, au pire ton programme sera fin prêt quand on recevra le 2ème lcd


humour!! Ne t’inquiète pas JMarc Noël c'est le jour des miracles.

Jérémy à écrit :

Tu te rajoutes des difficultés


Jérémy à raison, plusieurs LED de couleur différente suffisse.

je ferais moins l'andouille quand je serais devant mon écran, enfin si j'arrive à recevoir le deuxième :furieux:


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)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2913
Enregistré en : juillet 2016
Localisation : Terre

#92 Message par Temps-x » dim. 8 oct. 2017 21:34

Bon j'ai trouvé un bout de code pour écran ILI9342 , apparament j'ai compris qu'il y avait une version PIC

j'ai commencé un bout de code, après il faut déterminer a quoi correspond la fonction command, apparament il font pas la même chose
que JMarc, pour le reset.

Je joint tous les fichier :
ILI9342.zip


Code : Tout sélectionner



;   avis au spécialiste du C         ;pinMode(_cs_pin, OUTPUT);
;
   si il save ce que ça veut dire   ;pinMode(_reset_pin, OUTPUT);

    bsf LCD_CS                       ; digitalWrite(_cs_pin, HIGH);
    bsf LCD_RST                      ; digitalWrite(_reset_pin, HIGH);
    call Tempo_10ms                  ; delay(10);
    bcf LCD_CS                       ; digitalWrite(_cs_pin, LOW); 
    bcf LCD_RST                      
; digitalWrite(_reset_pin, LOW); 
    call Tempo_10ms                  
; delay(10)                                 
    bsf LCD_RST                      
; digitalWrite(_reset_pin, HIGH);
    call Tempo_10ms                  ; delay(10)   



A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
: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 : 607
Enregistré en : août 2016
Localisation : Dans le Sud...

#93 Message par JMarc » dim. 8 oct. 2017 22:06

J'ai beau essayer de comprendre ce langage mais l'arduino ou le c je n'y comprend rien. :mur:

écran tactile 2.4 TFT LCD 240 x 320 (version ASM)
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1941
Âge : 67
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#94 Message par Gérard » dim. 8 oct. 2017 22:08

JMarc a écrit :J'ai beau essayer de comprendre ce langage mais l'arduino ou le c je n'y comprend rien. :mur:


Je suis dans le même cas que toi. :sifflotte:
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

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

#95 Message par satinas » dim. 8 oct. 2017 22:40

pinMode(pin, OUTPUT) et pinMode(pin, INPUT) sont des fonctions qui permettent de mettre une pin en output ou input, comme avec les registres TRIS du pic
Modifié en dernier par satinas le dim. 8 oct. 2017 23:04, modifié 1 fois.

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

#96 Message par JMarc » dim. 8 oct. 2017 22:44

Gerard, Elle est arrivé la Ford ?

Satinas, les boucles, les tempos, ... C'est pas clair, trop de fichiers à surveiller, je ne sais même pas ou est le début

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

#97 Message par satinas » dim. 8 oct. 2017 22:48

Très bonne trouvaille, ce fichier, bravo, c'est du pic32 on dirait
L'init du lcd est dans la fonction configureScreen()
Les fonctions command() et data() de l'init sont les mêmes que les nôtres.
delay(100) c'est une tempo de 100ms
Y a pas de boucle dans l'init
Il faut mettre cs à 1 pendant le reset, du moins c'est ce que j'en pense, et c'est le cas dans ce programme

Code : Tout sélectionner

void ILI9342::initializeDevice() {
    digitalWrite(_cs_pin, HIGH);
    digitalWrite(_rs_pin, HIGH);
    digitalWrite(_wr_pin, HIGH);
    digitalWrite(_rd_pin, HIGH);

    digitalWrite(_reset_pin, HIGH);
    delay(10);
    digitalWrite(_reset_pin, LOW);
    delay(10);
    digitalWrite(_reset_pin, HIGH);
    delay(10);

    configureScreen();
 }
 
 void ILI9342::configureScreen() {
   blabla ...
 }

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

#98 Message par JMarc » dim. 8 oct. 2017 23:53

Je cherche la commande "command(0xc8);"

Ça passe de C7 a D0 dans la doc ili9342 et ili9341

Code : Tout sélectionner

d ILI9342::configureScreen() {
    delay(100);

    command(0x01);
    delay(10);


    command(0xc8);
    data(0xFF);
    data(0x93);
    data(0x42); 
 
    
    command
(0x36);       //Memory Access Control
    data(0xc8);//MY,MX,MV,ML,BGR,MH
    

    command
(0x3A);       //Pixel Format Set
    data(0x55);//DPI [2:0],DBI [2:0]  

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

#99 Message par Temps-x » lun. 9 oct. 2017 02:33

Ouais c'est pour Pic32, mais il y d'autre fichier, fait un tour dans ILI9342.h, tu vas comprendre ta douleurs.

Ben je crois qu'on n'est pas sortie de l'auberge, c'est pas fini, je vous l'assure, et c'est bien ce que je pensais, 4 mode comme
expliqué page 10, que j'ai traduit plus haut, je le remets ici.

ILI9342 fournit quatre types d'interface système MPU avec une interface parallèle série 8080/6800 et une ligne 3/4-line
interface série.

Je vais traduire le code C+ fichier par fichier, pour bien en comprendre le fonctionnement et le réécrire en ASM, avec vous tous. :wink:

Si je reçois mon écran, satinas, tu peux toujours commander ou JMarc et moi l'avons acheté, j'ai bien dit si je reçois mon écran :sifflotte:
Je vous tiens au courant.

Enfin plus c'est compliqué, et plus ça me donne envie de gagné envers cette écran ... suite demain parce que je tiens plus....

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)
satinas
Expert
Expert
Messages : 1499
Enregistré en : novembre 2015

#100 Message par satinas » lun. 9 oct. 2017 07:58

Bonjour tout le monde,

Dans le .h il y a pas grand chose, la définition des fonctions C++, et il baptise les différentes commandes du lcd
en C, 2 manières de faire (et il y en a encore d'autres)
const uint8_t ILI9342_SOFTRESET = 0x01;
#define ILI9342_SOFTRESET 0x01
en ASM, on utilise une directive pour faire pareil
ILI9342_SOFTRESET EQU 0x01
Le problème c'est qu'il ne se sert pas de ces noms dans le programme, dommage ...

Il utilise le port parallèle master PMP 16 bits, câblé dans le pic32, au même titre que les ports uart, spi, i2c, ...
L'avantage est que l'on à plus à s'occuper des pins LCD_WR et LCD_RD. Il suffit d'écrire le registre PMOUT et la pulse /LCD_WR est générée automatiquement par le pic. Idem pour la lecture avec PMIN.
Il peut aussi fonctionner en mode slave PSP, dans ce cas les pins WR et RD sont des inputs.
Ce programme est baleze car il utilise un ou plusieurs canaux DMA du pic32, pour passer directement des paquets de données (couleurs) de la flash/ram vers le lcd, de façon automatique, sans que la cpu intervienne.

Certains 18F on un PMP/PSP 8 bits, notamment le 18F87J50 de Jeremy. Par contre pas de DMA dans les 18F.

Ce programme fait comme tous les autres, reset, init, setWindow(0x2A,0x2B), et 0x2C pour envoyer les couleurs, il manque juste le son du clairon. Il y a juste à tester la séquence init, si ça marche pas, au suivant :)
Bonne journée


Retourner vers « Langage ASM »

Qui est en ligne

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