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

#91 Message par Guest » dim. 8 nov. 2015 15:49

re bonjour

je suis toujours sur le reset soft car cote hard on est bon
il faudrait envoyer les 0x12 0x13 et 0x39 par CMD
qu'ils sont display normal ide normal et partial mode

Pour ce qui est du contraste on peut vérifier si le contrôleur est en route en lui demandant un info style config s'il nous répond, on se penche sur le contraste je ne sais pas ce que vous en pensaient?
Modifié en dernier par Anonymous le dim. 8 nov. 2015 15:57, modifié 1 fois.

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

#92 Message par Jérémy » dim. 8 nov. 2015 15:57

Je ne sais pas ce que idle signifie !

Pour les commandes 0x12 et 0x13, c'est contradictoire , AMHA c'est soit l'une , soit l'autre non ?

Cette idée de lire est bonne mais compliqué non ? en affichant la valeur sur le PORTC c'est jouable ?
C'est en faisant des erreurs, que l'on apprend le mieux !!!

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

#93 Message par Guest » dim. 8 nov. 2015 16:12

Jérémy a écrit :Cette idée de lire est bonne mais compliqué non ? en affichant la valeur sur le PORTC c'est jouable ?


il faut écrire la routine de lecture et lecture sur PORTC

la routine lecture identique a Envoi_cmd la validation par RD (0 puis 1) et WR=1

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

#94 Message par Jérémy » dim. 8 nov. 2015 16:38

Routine ecrite : J'ai un peu l'impression que ca fonctionne ; Quand je change la valuer du registre à lire, la valeur lue change .

voici la routine . j’envoie la cmd pour sélectionner le registre a lire .
et je lis le registre . la premier valeur est passé rapidement étant donné qu'on s'en fou en 8 bit . sur la deuxième je fais une pause de 1 seconde . Puis j'eteins le PORTD pendant une seconde , ainsi je vois bien que le programme tourne .

Code : Tout sélectionner

//---------------------------------------------------------------------------------
//  Fonction Lecture de registre
// Param d'entrée : Valeur en HEXA à lire
// Effectue un front montant sur TFT_RD pour lire l'info
void Lire_reg (unsigned char lecture){

  Envoi_cmd(lecture);  //valeur a lire

  TFT_RS = 1 ;      // Register Select, 1=Data, 0=Command
  TFT_CS = 0;       // (PORTB.B4) Chip Select actif en permanence
  TFT_WR = 1;       // (PORTB.B1) Read, à 1 en permanence pas de lecture du display
  TFT_RD = 1 ;

  TFT_RD = 0 ;
     delay_us(1);       // premier front montant pour les 8 premiers bit
  TFT_RD = 1 ;
     delay_ms(1);
  TFT_RD = 0 ;
     delay_us(1);
  TFT_RD = 1 ;         // deuxieme front pour les 8 derniers bits
     delay_ms(1000);
  TFT_RD = 0 ;
}


Dans le MAIN:

Code : Tout sélectionner

 while(1) {

     Lire_reg(0x5F);
     
     
}
C'est en faisant des erreurs, que l'on apprend le mieux !!!

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

#95 Message par Guest » dim. 8 nov. 2015 17:01

Essai avec 0x0A peux tu me donner lecture du PORTC
Read_display.png
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

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

#96 Message par Jérémy » dim. 8 nov. 2015 17:09

La valeur lue sur le PORTD ( le port de donnée D0:D7) est 0b00001010 pour le registre 0x0A
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 : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#97 Message par Jérémy » dim. 8 nov. 2015 17:10

J'en déduis que la valeur de D2 comme elle est égale à 0 , le display est off !! ce serait cool ca !!

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

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

#98 Message par Guest » dim. 8 nov. 2015 17:13

ok fait un display_on et comme proposé plus haut code 0x12 0x13 et 0x38 et fait une lecture toujours du registre 0X0A

bravo tu te débrouilles bien avec le C tu as fais cela comme un chef allez on va l'avoir
Modifié en dernier par Anonymous le dim. 8 nov. 2015 17:15, modifié 1 fois.

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

#99 Message par Jérémy » dim. 8 nov. 2015 17:14

Le hic c'est que je fais un display ON dans mon initialisation !

Mais je vais essayer d'envoyer les commandes que tu me dis !
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 : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#100 Message par Jérémy » dim. 8 nov. 2015 17:17

Voici mon code d’initialisation :

Code : Tout sélectionner

//---------------------------------------------------------------------------------
//  Fonction d'initialisation de l'écran
   void Init_ecran(){

  Envoi_cmd (0x01); // Effectue un RESET
  delay_ms(300);
  Envoi_cmd (0x11); // Sleep Out
  delay_ms(300);
  Envoi_cmd (0x12); // normal mode
  delay_ms(1);
  Envoi_cmd (0x13); // normal mode
  delay_ms(1);
  Envoi_cmd (0x38); // idle mode ON
  delay_ms(1);
  Envoi_cmd (0x29); // Display on
}


La valeur lue reste à 0b:00001010
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 37 invités