bonjour, normalement les pins cs doivent être en output et set High, et tu ne passe en low que la Cs du composant auquel tu envois des info. sur le fonction Initialize the screen, il y a la commande digitalWrite(latchPin, LOW) mais elle ne retourne pas en high après les writeCommand. Peu être que le problème vient de la. Et j'ai l'impression qu'avec cette library tu dois déclarer l'état du CS avant et après chaque commande pour l'écran.
La librairie SD libère la broche CS (= HIGH) quand elle à finit de travailler.
Ce n'est donc pas elle qui pose probléme.
Vérifie que ton CS du lcd est bien en OUTPUT et à HIGH au setup().
Ensuite pour éviter tout probléme à chaque fois que tu utilises le lcd fait comme ceci :
digitalWrite(CS_LCD, LOW);
// utilisation du lcd (MAIS PAS DE LA SD)
digitalWrite(CS_LCD, HIGH);
Comme ça si librairie ne gère pas elle même la libération du bus SPI c'est toi qui le fera à la main
j'en profite pour poser une une petite question sur un point pas très clair pour moi, si on ajoute les commande High et Low dans la librarie du Lcd comme suis:
void LCD12864RSPI::writeData(int data)
{
digitalWrite(CS_LCD, LOW);
int H_data,L_data;
H_data = data;
H_data &= 0xf0; //Mask lower 4 bit data
L_data = data; //Format: xxxx0000
L_data &= 0x0f; //Mask higher 4 bit data
L_data <<= 4; //Format: xxxx0000
writeByte(0xfa); //RS=1, data is to be written.
writeByte(H_data);
writeByte(L_data);
digitalWrite(CS_LCD, HIGH);
}
en déclarant la pin CS_LDC dans les 2 fichier de la librarie, es ce que ça résout le problème? Parce que dans la utft il y a toujours cbi_CS(); et sbi_CS(); encadrant les communications avec le lcd.
Petit test avec un digitalWrite(48,HIGH); après utilisation du LCD.... C'est bien le pb
Mais doit y avoir encore des traces ailleurs car c'est pas totalement cohérent.
J'ai utilisé cette librairie pour tester car la librairie Google Code Archive - Long-term storage for Google Code Project Hosting. est bien plus puissante mais doit avoir aussi le même pb et comme elle est bien garnie en code, la compil est très lente !
Je virerais bien des fichiers mais j'ose pas sans étude préalable.
Si qq1 a déjà fait le travail, c'est avec plaisir que je l'accueillerais
je suppose que tu as deja essayé un digitalWrite(53,HIGH); a la fin de ta commande vers la sd? tu utilises la librarie sd incluse avec le logiciel arduino? au final tu veux utiliser la librarie du dernier lien pour ton lcd?
Bin, moi j'ai un projet d'affichage de données sur un ldc avec sd pour le data loging. j'ai deja reçu l'écran et le shield il me manque plus que la Due et je commence les essai. Mais sur les vidéo de démo l'arduino charge une image depuis une sd et l'affiche sur l'écran. Il y a même la fonction touch qui passe par le spi. Pour l'instant je suis englué dans la librarie utft. J'ai regardé les programmes des libraries sd et spi, il faut déclarer l'état des pin Cs avant et après chaque commande.