lecture du code appareil de ILI9320 GLCD contrôleur

F

froten

Guest
Bonjour à tous,

J'ai un LCD module Wistron Opt 145 710-A, mais n'a pas pu trouver une datasheet pour elle.J'ai essayé plusieurs codes d'initialisation et heureusement, il a travaillé avec un code pour ILI9320 ou ILI9325.Je suis en train de lire son code périphérique de savoir météorologiques, il est 9320 ou 9325, mais seulement cette partie de mon code ne fonctionne pas, je aloways obtenir 0x0000.Si tout organisme peut aider à ce sujet, qui sera très appreicated.mon code-je utiliser pour lire le code appareil est comme ci-dessous.//******************** Code LCD ************************** **********
Initialiser ();
LCD_Reset (); / / cela fonctionne quand displying une image

LCD_SetReg (0x00, 0x00, 0x01); / / interne oscillateur Start
delay_ms (50);

for (i = 0; i <2; i)
(
LCD_ReadDeviceCode (); / / Cette jamais travaillé ???????????????????????????
Delay_ms (500);
)

LCD_Init (); / / cette fonction est activée lorsque displying une image
LCD_FillScreen (BRIGHTGREEN); / / ceci fonctionne aussi

//************************************************ *****************
void LCD_ReadDeviceCode () / / Attendez-9325h ou 9320h
(
LCDCS = 0;
OutLoByte = 0; / / OutLoByte = PORTB
OutHiByte = 0; / / OutHiByte = PORTD
LCDRS = 0; / / Ecrire à l'index reg
LCDWR = 0;
delay_ms (10);
LCDWR = 1;
LCDRS = 1;
LCDRD = 0;
delay_ms (10);

UART1_Write (OutLoByte); / / Essayez-le maintenant
UART1_Write (OutHiByte);

LCDRD = 1;
UART1_Write (OutLoByte); / / essayer de nouveau
UART1_Write (OutHiByte);
LCDCS = 1;
)
void Initialize ()
(
ADCON1 = 0x06; / / Configurer PORTA que le port numérique
TRISA = 0; / / A comme sorties
TRISB = 0; / / B comme sorties
TRISD = 0; / / D comme sorties

PORTA = 0b111111; / / Tous sont élevés
PORTB = 0;
PORTD = 0;

INTCON = 0b11000000; / / Activer GIE, PEIE
PIE1 = 0b00100000; / / Activer CNIE, DeSable TXIE
PIE2 = 0; / / int eeprom Desable
PIR1 = 0; / / efface tous les drapeaux int
PIR2 = 0; / / efface tous les drapeaux int
)

 
Salut

Pouvez-vous partager plus d'informations?Je suis coincé avec l'écran LCD même, mais le mien est un Wistron 145716-A.J'ai des problèmes pour la faire mettre en marche.

Merci

 
<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />

ok j'ai lu la mienne, c'est un 37669 en décimal ou ILI9325

 
Je suis également frappé par ce problème.J'utilise ILI9325 mais quand j'essaie de lire le dispositif ID-je obtenir 0x0000, et donc le code du travail ne marche pas plus aucune sorte d'aide avec le code sera grandement appericated

 
Si vous pouvez poster votre code ici, je vais être en mesure de vous aider.

 
unsigned short TSLCDInDat (void) / / lire les données d'affichage à cristaux liquides
(
unsigned retval court = 0;

LPC_PINCON-> PINSEL0 & = ~ (0xFFFF <<4); / / broches de réinitialisation
-> FIODIR LPC_GPIO0 & = ~ LCD_DATA_MASK;

LCD_CS_LOW ();
LCD_RS_HIGH ();

LCD_RD_LOW ();
delay_ms (1);
retval = (LPC_GPIO0-> FIOPIN & LCD_DATA_MASK);
LCD_RD_HIGH ();
delay_ms (1);

LCD_RD_LOW ();
delay_ms (1);
retval = (retval <<

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Frais" border="0" />

| (-> FIOPIN LPC_GPIO0 & LCD_DATA_MASK);
LCD_RD_HIGH ();
delay_ms (1);

LCD_CS_HIGH ();

retval retour;
)

En commande d'écriture J'ai passé le registre d'adresse de 00h, mais la réponse qu'il donne est 0x0000 ou certaines valeurs des orduresAjouté après 24 minutes:Bonjour SpiralBrain,

Im donnant le code sous forme prolongée pour que vous compreniez mieux.Je fais ce projet en ARM Cortex M3 LPC 1768, pilote d'affichage est ILI9325

le code est le suivant:
void TSLCDOutDat (unsigned dat courte) / / écrire des données sur écran LCD
(
LCD_RS_HIGH ();
LCD_RD_HIGH ();
LCD_WR_LOW ();

LPC_PINCON-> PINSEL0 & = ~ (0xFFFF <<4); / / Reset broches GPIO
LPC_GPIO0-> FIODIR | = LCD_DATA_MASK; / sortie direction /
-> FIOCLR LPC_GPIO0 = LCD_DATA_MASK;
-> FIOSET LPC_GPIO0 = (DAT>>

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Frais" border="0" />

<<2 / / première partie de 16 bits de données envoyer (supérieur bits)

LCD_CS_LOW ();
LCD_CS_HIGH ();

-> FIOCLR LPC_GPIO0 = LCD_DATA_MASK;
-> FIOSET LPC_GPIO0 = dat <<2 / / 2ème partie de 16 bits de données envoyer (bits de poids faible)

LCD_CS_LOW ();
LCD_CS_HIGH ();
LCD_WR_HIGH ();

LPC_PINCON-> PINSEL0 & = ~ (0xFFFF <<4);
-> FIODIR LPC_GPIO0 & = ~ LCD_DATA_MASK;

)

TSLCDOutIns vide (unsigned ins courte) / / écriture d'instructions à l'écran LCD
(

LPC_PINCON-> PINSEL0 & = ~ (0xFFFF <<4); / / Reset broches GPIO
> FIODIR |-LPC_GPIO0 = LCD_DATA_MASK;

LCD_CS_LOW ();
LCD_RS_LOW ();
LCD_RD_HIGH ();

LCD_WR_HIGH ();
LCD_WR_LOW ();
delay_ms (1);
-> FIOPIN LPC_GPIO0 & = ~ LCD_DATA_MASK;
LCD_WR_HIGH ();

LCD_WR_LOW ();
delay_ms (1);
LPC_GPIO0-> FIOPIN | ins = <<2 / / 8bit commande Envoyer
LCD_WR_HIGH ();

delay_ms (1);
)

unsigned short TSLCDInDat (void) / / lire les données d'affichage à cristaux liquides
(
unsigned retval court = 0;

LPC_PINCON-> PINSEL0 & = ~ (0xFFFF <<4); / / Reset broches GPIO
LPC_GPIO0-> FIODIR & = ~ LCD_DATA_MASK; / broches d'entrée /

LCD_CS_LOW ();
LCD_RS_HIGH ();

LCD_RD_LOW ();
delay_ms (1);
retval = (LPC_GPIO0-> FIOPIN & LCD_DATA_MASK);
LCD_RD_HIGH ();
delay_ms (1);

LCD_RD_LOW ();
delay_ms (1);
retval = (retval <<8) | (LPC_GPIO0-> FIOPIN & LCD_DATA_MASK);
LCD_RD_HIGH ();
delay_ms (1);

LCD_CS_HIGH ();

retval retour;
)

Hope ce temps, le code est plus compréhensible.et oui le suis pas en mesure d'obtenir toute la production dans le TFT et l'ID de périphérique n'est pas non plus correct.

Merci à l'avance

 
OK permet de voir,
Je vous conseille de faire une lecture séparée de routine reg.il ne serait pas possible de lire en envoyant une commande, puis la lecture.

Ma routine reg lire comme suit:Code:Lcd LIRE REG (adresse reg)

(CS = 1 désélectionner la puce

WR = 1 stroboscopique mis au ralenti

RD = 1 mise lire au ralenti

RS = 0 de sélectionner un index / registre d'état

<16 adresses données sur le port>CS = 0 sélectionner la puce

WR = 0 WR stroboscopique à écrireCS = 1 désélectionner la puce

WR = 1 WR mis au ralenti

RD = 1 lecture au ralenti

RS = 1 Sélectionnez un registre de contrôleport <Change à Input>CS = 0 sélectionner la puce

RD = 0 stroboscopique e à lire et à mettre la valeur des données sur le port<Lire port> 16 bitsCS = 1 désélectionner la puce

RD = 1 e mis au ralenti

port <Change à Output><return(saved 16 bit)>)
 

Welcome to EDABoard.com

Sponsor

Back
Top