WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20123 4 déc. 2007 à 22:25
Bonsoir
Tout ce qui suit n'est que pure spéculation, car pas de matériel pour tester. De la théorie rien que de la théorie, qui plus est peut être erronée
En regardant brièvement la doc du SPLC501C, ce que tu lui envoyes semble correct (les commandes); par contre je ne vois pas dans ton programme les signaux EP et RWP, juste le AOP.
Suggestions :
Pour le reset :
EnvoyerCommande(0xE2); // RESET
Pour le contraste :
EnvoyerCommande(0x81); // Electronic Volume Double Command - 6.18
EnvoyerCommande(0x20); // Valeur moyenne
Pour tester l'affichage :
EnvoyerCommande(0xA5); // Affichage de tous les pixels
EnvoyerCommande(0xA4); // Affichage normal
P.S. Autre chose, respectes tu les bons timings ?
Cordialement. <hr />"L'imagination est plus importante que le savoir." Albert Einstein
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_dine62
Messages postés6Date d'inscriptionmardi 30 janvier 2007StatutMembreDernière intervention13 octobre 2008 5 déc. 2007 à 09:39
Salut,
Les signaux EP, RWP ne sont pas présent dans mon programme car, je n'y ai pas accès. Je n'ai acces que a 9 pins : RESET, AOP, SI, SC1, SCL, V+, V-, BL- etBL+ (BL sont pour l'allumage de la lumière).
Sinon, je pense avoir respecsté les timings. J'ai changé u peu mon programme depuis le premier poste.
// A utiliser que si l'on connait la position où l'on se trouve
void EcricreALaSuite(int8 Data)
{
Afficher(Data);
}
// Ecrit une donnée sur une page et une colonne spécifiées
void EcricreDataSurPage(int8 Page, int8 Colonne, int8 Data)
{
EnvoyerCommande(NumPage + page); // Config de la page
EnvoyerCommande(NumColoneHigh + (Colonne & 0xF0) >> 4); // Configuration de la colonne (@high=
EnvoyerCommande(NumColoneLow + (Colonne & 0xF0) ); // Configuration de la colonne (@low)
Afficher(Data);
}
// Place le caractère ' ' à la première colonne
EcricreDataSurPage(Page, 0x00, 0x00);
// Place le caratère ' ' à la idx ieme colonne
for (idx = 0; idx<128; idx++)
EcricreALaSuite(0x00);
}
// Efface toutes les pages
void EffacerAfficheur(void)
{
int8 idx;
De plus WhiteHippo, j'ai essayé tes tests mais rien. J'ai mit une tempo entre afficher tous les pixels et affichage normal histoire de voir quelque chose mais toujours rien.
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20123 5 déc. 2007 à 18:26
Bonsoir
Quelques points :
"Les signaux EP, RWP ne sont pas présent dans mon programme car, je n'y ai pas accès" : En "3. BLOCK DIAGRAM" et "4.3. System Bus connection Terminals", ces entrées sont bien présentes !! Je comprends pas pourquoi tu n'y as pas accès.
CS1 et pas de CS2 ?? Toujours en "4.3. System Bus connection Terminals" et en "5.2. The chip select", il est spécifié que pour activer les émissions/receptions de données et/ou de commandes il faut avoir le CS2=1 et le CS1=0.
void EnvoyerCommande (int8 data)
{
// Activation des I/O
output_high(CS2);
output_low(CS1);
// DB0 à DB7 = Données de controle
output_low(AOP);
// Envoi des données
spi_write(data);
// Désactivation des I/O
output_low(CS1);
output_low(CS2);
delay_ms(2);
}
P.S. Je me base sur la version 1.8 de la documentation.
Cordialement.
<hr />"L'imagination est plus importante que le savoir." Albert Einstein