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 le langage C !

Modérateur : Jérémy

Ecran Easy TFT
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#21 Message par Guest » mer. 4 nov. 2015 16:06

Oui c'est cela sauf ici
TFT_WR = 0 ; // // Broche à l'état haut pendant 1µs
et je ne vois plus ton rest que tu as remplace par display off ????

Ecran Easy TFT
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#22 Message par Jérémy » mer. 4 nov. 2015 16:53

Oui j'ai remplacé le RESET par un display off et display ON ; car la au moins je suis sur de voir s’éteindre l'écran . avec un RESET, il se peut qu'il ne s'éteigne pas du tout , et donc je passerai a coté.

Il faut que je mette à 1 LeTFT_WR?

PS: tu peux mettre en évidence certains texte avec la citationpar exemple ou le bouton rem afin que ce soit plus lisible .
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Ecran Easy TFT
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#23 Message par Guest » mer. 4 nov. 2015 18:26

l'INT c'est cela:
UNE RAZ SOFT AVEC UN DÉLAI POUR LA STABILISATION DU CONTRÔLEUR ÉCRAN

Code : Tout sélectionner

code void INIT()
{
write_cmd(0x01);   //software reset
delay(5);
write_cmd(0x28);   // display off
}
//---------------------------------------------------------


c'est dans le data sheet
apres tu peux faire:

Code : Tout sélectionner

 
write_cmd(0x29);   // display on


et la tu parts pour le remplissage de l'ecran

Il faut que je mette à 1 LeTFT_WR?

Oui en plus dans ton commentaire tu dis: broche a l’état haut pour moi un état haut c'est un, un état bas c'est zéro

donc la validation c'est:
WR=0
NOP
NOP
WR=1
NOP
NOP

Alors le NB de NOP est fonction de ton quartz et si tu veux on en parle dans un autre post sur son calcul et comment obliger le compli a compiler un certains nombre de NOP en fonction du cycle machine et du quartz utilise.
Pour le moment a 20Mhz 2 ou 4 NOP c'est largement suffisant et bien plus rapide que de passer par la fonction delay pour 1µs on est ici a 15ns de minimum

Ecran Easy TFT
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#24 Message par Jérémy » mer. 4 nov. 2015 18:46

De retour à la maison. je lave les enfants , je mange avec ma petite famille , et je m'y colle. En esperant que ca marche. Tu as raison je vais faire un reset au départ , c'est plus prudent

Oui en plus dans ton commentaire tu dis: broche a l’état haut pour moi un état haut c'est un, un état bas c'est zéro

Oui mauvais copier/coller
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Ecran Easy TFT
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#25 Message par Jérémy » mer. 4 nov. 2015 20:23

Marche pas !!! oops
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Ecran Easy TFT
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#26 Message par Jérémy » mer. 4 nov. 2015 22:11

J'ai re checker mes connexions !.

J'ai checker le programme et j'ai mis une led test !. ca marche pas. Je dois mal envoyer ma commande, mais je vois pas pourquoi . J'ai essayer en inversant les valeurs soit sur front montant ou descendant pour TFT_WR

Voici mon programme avec fonction d'envoi de commande:

Code : Tout sélectionner

// easy TFT connexions ----------------------------------------------
sbit TFT_RD at LATB0_bit;
sbit TFT_WR at LATB1_bit;
sbit TFT_RS  at LATB2_bit;
sbit TFT_CS  at LATB4_bit;
sbit TFT_RST at LATB5_bit;

char TFT_DataPort at PORTD//donnée sur le PORTD de D0:D7

sbit TFT_RD_Direction at TRISB0_bit;
sbit TFT_WR_Direction at TRISB1_bit;
sbit TFT_RS_Direction  at TRISB2_bit;
sbit TFT_CS_Direction  at TRISB4_bit;
sbit TFT_RST_Direction at TRISB5_bit;
// End easy TFT connexions ----------------------------------------------


//  Fonction Envoi de commandes   --------------------------------------------------
  
void Envoi_cmd unsigned char Data){

  
TFT_DataPort Data ;  //  Met la valeur sur le PORTD (0x01= RESET)
  
TFT_CS=;             // Chip select , actif à l'etat bas
  
TFT_RS=;             // Register Select, 1=Data, 0=Command
  
TFT_RD=1;

  
TFT_WR ;
         
delay_us(1);
  
TFT_WR ;

}
//----------------------------------------------------------------------------------

void main() {

  
ANSELB 0;  // Configure le PORTB en digital
  
ANSELD 0;  // Configure le PORTD en digital
  
ANSELE 0;  // Configure le PORTD en digital

  
TRISB 0;  // Port B en sortie
  
TRISD 0;  // Port B en sortie
  
TRISE 0;  // Port en sortie pour test
  
  
LATB 0;   // RAZ du PORT B
  
LATD 0;   // RAZ du PORT D
  
LATE 0;   // RAZ du PORT D

  
Envoi_cmd (0x01); // Effectue un RESET

  
while(1) {

      
Envoi_cmd (0x28); // envoi display off

      
PORTE 0x01;    // allume une led test
      
delay_ms(1000);  // pause


      
Envoi_cmd (0x29); // envoi display on

      
PORTE 0x00;    // Eteint une led test
      
delay_ms(1000);  // pause


  
}

C'est en faisant des erreurs, que l'on apprend le mieux !!!

Ecran Easy TFT
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#27 Message par Jérémy » jeu. 5 nov. 2015 11:02

Vraiment je comprends pas .Personne n'as d'idée ?

J'ai essaye d'inverser toutes les commandes, même le RESET hard !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Ecran Easy TFT
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#28 Message par paulfjujo » jeu. 5 nov. 2015 12:17

bonjour,

je trouve bizarre que tu initialises les bits du TFT par la fonction
sbit ...... as ..
de meme pour la direction (entree ou sortie)

Code : Tout sélectionner


 TFT_RD_Direction
=0
 
TFT_WR_Direction=0;
 
TFT_RS_Direction=0;
 
TFT_CS_Direction=0;
 
TFT_RST_Direction=0



mais que tu ne les initialises pas dans ton code, et utilise une init directe avec TRIS...
Les labels de variables utilisés ensuite sont -ils vraiment initialisés dans ce cas ?
Aide toi, le ciel ou FantasPic t'aidera

Ecran Easy TFT
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#29 Message par Guest » jeu. 5 nov. 2015 12:50

OU est la tempo de delay (5) après le rest ??? c'est fou ....

La led elle clignote ou pas? cela m’intéresse un peu :-)

Ecran Easy TFT
Jérémy
Administrateur du site
Administrateur du site
Messages : 2725
Âge : 45
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#30 Message par Jérémy » jeu. 5 nov. 2015 15:08

je trouve bizarre que tu initialises les bits du TFT par la fonction
sbit ...... as ..
de meme pour la direction (entrée ou sortie)

En fait , moi aussi , mais j'ai seulement adapté le programme ! c'est initialisé comme ca pour le GLCD, alors je me suis que ca devait etre mieux ou correct.

mais que tu ne les initialises pas dans ton code, et utilise une init directe avec TRIS...
Les labels de variables utilisés ensuite sont -ils vraiment initialisés dans ce cas ?

Je ne sais pas . JE vais tout remettre comme je sais faire, je pense que c'est le mieux, plutot que de vouloir utilisé un code tout fait que je ne comprends pas.

OU est la tempo de delay (5)

:oops: J'en avais mis une de 1000ms, en test . je vais donc essayer aussi avec 5seconde , mais ça me parait tout simplement énorme

La led elle clignote ou pas? cela m’intéresse un peu :-)

Au début non, après quelques modifs OUI . C'est un outils indispensable .

Merci pour vos piste: car la vraiment je séchais, et je ne savais plus quoi faire !

Allez je file essayer ça, et je vous dis
C'est en faisant des erreurs, que l'on apprend le mieux !!!


Retourner vers « Langage C »

Qui est en ligne

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