Bonjour à vous,
Après avoir réglé mes pb d'interruptions sur RB0 je reviens vers vous pour un problème d'afficheur LCD...
Mon problème est qu'il ne m'affiche rien du tout quelque soit le "putXXXXX" que j'emploie...
Voici les modifs pour la configuration des pins dans XLCD.h
/* DATA_PORT defines the port to which the LCD data lines are connected */
#define DATA_PORT PORTA
#define TRIS_DATA_PORT TRISA
/* CTRL_PORT defines the port where the control lines are connected.
* These are just samples, change to match your application.
*/
#define RW_PIN PORTAbits.RA2 /* PORT for RW */
#define TRIS_RW DDRAbits.RA2 /* TRIS for RW */
#define RS_PIN PORTAbits.RA3 /* PORT for RS */
#define TRIS_RS DDRAbits.RA3 /* TRIS for RS */
#define E_PIN PORTAbits.RA1 /* PORT for E */
#define TRIS_E DDRAbits.RA1 /* TRIS for E */
Et voici mon code LCD.c dans lequel il y a quelques résidus de tests que j'ai pu faire (c'est à dire que tout le code ne sert pas)
#include<p18f2550.h>
#include<delays.h>
#include<xlcd.h>
#include<stdlib.h>
//#define putchar(a) WriteDataXLCD(a)
//temporisation nécessaires aux composants de la bibliothèque XLCD
#pragma config PBADEN = OFF
char chaine[]="RAM";
unsigned char tampon[5];
unsigned char tamponf[30];
float f;
//************************
// Initialisation de l'afficheur LCD
//************************
/*Provide a 18 TCY delay*/
void DelayFor18TCY(void)
{
Delay10TCYx(0x2); //Delay 20 cycles
return;
}
/*Provide at least a 15 ms delay*/
void DelayPORXLCD(void)
{
Delay100TCYx(0xA0); //100TCY*160
return;
}
/*Provide at least a 5 ms delay*/
void DelayXLCD(void)
{
Delay100TCYx(0x36); //100TCY*54
return;
}
//****************************** **
void main(void)
{
//BusyXLCD;
//
char data;
//ADCON1=0x07;
OpenXLCD(FOUR_BIT & LINE_5X7);
SetDDRamAddr(0);
putsXLCD(chaine);
SetDDRamAddr(0x40);
putrsXLCD("ROM");
SetDDRamAddr(0x48);
putchar('c');
while(1);
}
----------------------------------------
C'est parfaitement ok pour la compilation...
Je me dis que rien que la fonction OpenXLCD devrait faire afficher qqch sur l'écran, non ?
Si jamais il faudra que je teste le contraste comme indiqué dans plusieurs posts... mais bon ça marche (voir Post Scriptum)...
Si vous avez une idée, je prends
Merci à vous.
PS : en bidouillant sur les interruptions avec des bouts de code déjà tout faits, j'ai déjà observé des inscriptions sur l'afficheur LCD mais à cette époque-là ce n'était pas mon problème... et puis je ne retrouve pas ces codes de toute façon...
-----