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

#141 Message par paulfjujo » jeu. 19 oct. 2017 10:00

bonjour Temps et à tous,

je suis vos posts de loin, pour l'instant, n'ayant pas encore ce display en possession...

A tous hasard, sais tu comment ça fonctionne ?

Code : Tout sélectionner



void lcdWrite8
(uint16_t data)
{
    
digitalWrite(LCD_D0data 1);
    
digitalWrite(LCD_D1, (data 2) >> 1);
    
digitalWrite(LCD_D2, (data 4) >> 2);
    
digitalWrite(LCD_D3, (data 8) >> 3);
    
digitalWrite(LCD_D4, (data 16) >> 4);
    
digitalWrite(LCD_D5, (data 32) >> 5);
    
digitalWrite(LCD_D6, (data 64) >> 6);
    
digitalWrite(LCD_D7, (data 128) >> 7);
}
  


à mon avis ,c'est une fonction qui assigne chaque bit de l'element data à chaque sortie
en fonction de son poids binaire.
un décodeur série parallèle en quelque sorte..

Curieux que le parametre soit sur 16 bits ? unint16 ?
et pas uint8_t ou byte

nota: avec mikroC , eviter d'appeler une variable data ..
Aides toi, le ciel ou Fantastpic t'aideras

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

#142 Message par satinas » jeu. 19 oct. 2017 11:21

Bonjour à tous,

Paul, oui c'est pas très joli, mais le compilateur laisse passer car, il n'y a pas de risque de bug. Ton bug 18F1840 c'est un bug MikroC, non ?, car j'ai vu ton post de 2012 sur leur forum.

Temps-x, C'est un écran 8 bits, et pas autre chose. La taille des commandes ou des datas (par exemple couleurs 16 bits) attendues par le contrôleur, n'ont rien à voir avec la taille de l'interface de communication qui est de 8 bits. C'est le contrôleur qui se débrouille pour gérer tout cela, nous on lui envoie 8 bits par 8 bits. D'ailleurs un écran spi 8 bits, c'est exactement la même chose, on envoie les mêmes infos au lcd parallèle 8 bits et au lcd spi 8 bits.
Le contrôleur peut travailler peut être aussi en 6, 16, 18 bits, ou autre, je suis même pas aller voir car cela ne nous concerne pas. Le réglage de l'interface est câblé en dur dans l'écran, pour être compatible avec les pins installées D7 à D0. L'avantage du pic est qu'on met en face un port 8 bits du pic, sur l'Arduino ça tombe à cheval sur plusieurs ports, et il sont obligés à chaque envoi 8 bits, de triturer les bits pour les répartir sur les ports, avec des fonctions semblable à celle de Paul ci-dessus.

Les macros ASM permettent d'avoir un code encore plus lisible que le C (voir init lcd dans mon source asm ci-dessus), ne pas les utiliser quand le code est très répétitif, et qu'on a pas encore organisé le code avec des sous-programmes, c'est du masochisme. Après d'autres macros serviront à dupliquer le code partout où cela doit aller vite.

J'ai du mal à argumenter, car je comprends pas certaines questions et interrogations, mais bon souvent je suis pas assez clair, alors ...

Amen et bonne journée, déjà bien entamée :)

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

#143 Message par Temps-x » ven. 20 oct. 2017 02:03

Bonjour JMarc, satinas, paulfjujo, et tous le forum,

Merci pour vos réponses paulfjujo, et satinas,


écrit par paulfjujo

un décodeur série parallèle en quelque sorte


c'est bien ce que je pense, j'avais fait un programme en QuickBasic il y a longtemps de cela, pour crypter mes données.
Et je me rappelle que j'ai utilisée la même technique.

:shock: Ok, uint8_t veut dire variable sous 8 bits, et uint16_t veut dire sous 16 bits

Curieux que le parametre soit sur 16 bits ? unint16 ?
et pas uint8_t ou byte


:oops: C'est pas moi qui est écrit ce programme que vous pouvez retrouvez ici : http://www.microcontroller-project.com/ ... o-uno.html

écrit par satinas

C'est un écran 8 bits, et pas autre chose.


OK, j'en prends note. :wink:

Les macros ASM permettent d'avoir un code encore plus lisible :sifflotte:


Excuse moi, mais là je suis pas d'accord avec toi, elle permette de gagner du temps, parce que tu as pas à les réécrire.
Faire appelle à une macro, c'est faire perdre du temps au microcontrôleur, et augmenter la taille du programme.
Personnellement je préfère réécrire quelque ligne de plus, c'est plus compréhensible qu'une macro que tu vas appeler de sais
de quelle non.

ne pas les utiliser quand le code est très répétitif, et qu'on a pas encore organisé le code avec des sous-programmes, c'est du
masochisme. :sifflotte:


Je te propose un défi, on prends les mêmes microcontrôleurs, on fait le même programme(clignotement LED) toit tu te sers de tes macros,
et moi je ne les utilises pas, et on verras la différence, en nombre de cycle, et de taille. :lol:


A+
Quand la souris nargue le chat, c'est que son trou n'est pas loin.

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

#144 Message par satinas » ven. 20 oct. 2017 07:18

Bonjour à tous,

Si vous n'aimez pas les macros, ne les utilisez pas, j'ai juste donné mon avis, avec preuve à l'appui.
Drôle de discussion. On est en train d'essayer de démarrer un lcd, et tu parles déjà de performance, Temps-x. Tu as vu le nombre de commandes d'init à envoyer au SPFD5408 ?
Je parle juste de saisir un code rébarbatif parce que répétitif sans faire d'erreurs de frappe, et d'utiliser pour cela ce que propose l'assembleur. Une macro, c'est simple, facile à écrire, car cela ne fait que de la manipulation de texte, cela prend en charge 80% de la saisie en quelque sorte, et sans erreur.

Après quand ça marchera, c'est à dire pas tout de suite :), pour le meilleur choix entre macros et sous-programmes, voir les nombreux livres sur l'assembleur. Les 2 doivent être utilisés à bon escient, y a pas de chapelle à défendre.
Pour les défis, pas la peine, quand ça va pas assez vite, je prends le modèle au dessus ;)
Le fait de manipuler des instructions machine, ne doit pas faire oublier que l'assembleur est un langage comme les autres, on n'est pas censé concurrencer le compilateur qui lui, n'étant pas humain, n'a pas peur de manipuler des listings très bas niveau qui n'en finissent pas.

Faire appelle à une macro, c'est faire perdre du temps au microcontrôleur

Tu peux développer ?

Bonne journée

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

#145 Message par Temps-x » ven. 20 oct. 2017 20:31

Bonjour JMarc, satinas, paulfjujo, et tous le forum,

écrit par satinas :

Drôle de discussion. On est en train d'essayer de démarrer un lcd,


Tu as raison, si il faut, on feras un post sur tous ce qui est, macro, sous programme, rapidité, différence entre ASM, et autre langage, mais
pour l'instant on va se concentrer sur l'écran, et sa éviteras de pollué le post.

J'ai encore fait aucun essai, comme le dit notre ami JMarc, Un simple organigramme aurait été de l'or.

sur l' Arduino ça tombe à cheval sur plusieurs ports

Je viens de comprendre ce que tu veux dire, effectivement sur Arduino, on est obligé de se débrouillé, si on achète la plaque
avec le composants déjà soudé dessus.

Tu as vu le nombre de commandes d'init à envoyer au SPFD5408 ?

Ben, non :oops:

Après quand ça marchera, c'est à dire pas tout de suite :sifflotte:

Là, je crois que tu as raison à 100%, c'est pas pré de fonctionner, enfin pour moi. :lol:

En réalité ce qui m’intéresse, c'est de l’intégrer à ma CNCLaser, donc j'ai commencer le programme sur mon PC.

Merci ! pour ton retour.

A+
Quand la souris nargue le chat, c'est que son trou n'est pas loin.

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

#146 Message par satinas » ven. 20 oct. 2017 20:40

Bonsoir Temps_x

C'est dans le fichier dans ce post, tiré de l'Arduino.
viewtopic.php?f=11&t=542&start=130

Un petit écran spi ILI9341, avec son driver tactile spi XPT2046, fallait m'écouter, je dis pas que des âneries :)
L'asm ce n'est plus mon truc, bien que j'en connaisse un rayon, mais je tenais à le démarrer avec vous, après j'intègre l'init à mes bibliothèques existantes en C.

Bye
Modifié en dernier par satinas le sam. 21 oct. 2017 10:36, modifié 1 fois.

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

#147 Message par Temps-x » ven. 20 oct. 2017 20:54

mais je tenais à le démarrer avec vous

Ouais c'est plus sympa,et ça renforce les doutes, quand on a le même matériel. :wink:

Et voici l'écran de connecté, en mettant des photos ça animeras le sujet, et nous renforcerons dans notre motivation.

écran blanc.jpg


Pour l'instant l'écran est blanc, et c'est normal, car aucune fonction mise en service, j'ai alimenté l'écran en 3,3 volts.

Voici un tableau avec 4 fonctions à faire en mode 8 bits

1) La commande d'écrire
2) Écrire des données d'affichage
3) Lire les données d'affichage
4) Lire le paramètre ou le statut

Commande.jpg


Et voici les vitesse

Timer.jpg

Timer-1.jpg

Timer-2.jpg


Car avant d' envoyer quelque chose, il faut connaître les temps, une fois les temps connu, il faut une méthode, bon je mets tous ça
en oeuvre.

Je vous tiens au courant

A+











A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Quand la souris nargue le chat, c'est que son trou n'est pas loin.

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

#148 Message par Temps-x » dim. 22 oct. 2017 22:32

Bonjour JMarc, satinas, paulfjujo, Jérémy, et tous le forum,

Voici pour JMarc l'organigramme

Organigramme.jpg


A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Quand la souris nargue le chat, c'est que son trou n'est pas loin.

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

#149 Message par JMarc » dim. 22 oct. 2017 22:59

Bonjour Temps-x

Super ton organigramme mais je ne comprends pas sa mise en application car cela ne correspond pas avec la list d'instruction que j'ai. Data shett spfd5408a, page 13

Je n'ai pas abandonner mais plutôt fait un breack. J'attend la réception de l'autre écran en ili je ne sais plus quoi pour voir si mes craintes se confirment, à suivre...

Pour l'instant j'ai fait la rubrique oscillateur interne, le clignotement de différente leds a des fréquences diverses pour servir de témoins pendant le déroulement des programmes et je recommence l'études des macros avec les if et else
Je suis toujours ce post bien sur et je suis dispos pour tout nouvel essai :sifflotte:

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

#150 Message par Temps-x » lun. 23 oct. 2017 01:05

Bonsoir JMarc

:eek: cela ne correspond pas avec la list d'instruction que j'ai. Data shett spfd5408a, page 13


:shock: D'après moi.

En page 13 du datasheet SPFD5408A, c'est pas une liste d’instruction à exécuter pour ton écran, se sont la liste des registres.

Par exemple : l'adresse 00h correspond au drivers de ton écran, donc elle n'est pas obligatoire, tu vois bien que c'est pas une liste à
effectuer.

D'après les temps que j'ai exposé ici : viewtopic.php?p=7105#p7105, il faut travailler avec un quartz d'au moins 16MHZ.

Au démarrage de ton écran, ne pas hésiter à lui faire faire une pause de 1 seconde, pour la stabilisation du système(l'échauffement).

Pour le Reset, il faut minimum un temps de 1milliseconde à l'état bas, si c'est plus de 1 milliseconde c'est mieux, par exemple 100ms,
après on le remets à l'état haut avec un temps d'au moins 1 milliseconde, ou plus, avant de lancer une nouvelle série d’instruction ou fonction.

Réinitialiser les caractéristiques de synchronisation.jpg


Pour les couleurs, j'en reparle plus tard, je crois que je commence à bien comprendre comment c'est écran fonctionne, je dirais même
que je commence à me rappeler de tous les registres. :lol:

Je vais pas aussi vite que satinas, qui à surement manipulé beaucoup d'écran, parce que je veux comprendre les détails.

Je continue mais recherche, car la ténacité ça fini toujours pas payer. :wink:

A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Quand la souris nargue le chat, c'est que son trou n'est pas loin.


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité