Bonjour,
Voila je suis en train de me faire une librairie pour mon ecran LCD 2x16. Je programme un PIC18F2423 avec le compilateur MCC18.
Pour le moment je n'arrive toujours pas à faire fonctionner ma librairie LCD mais je viens de m'apercevoir qu'une fonction qui permet de commander un seul bit d'un port ne fonctionne pas comme je le pensais.
Voila l'exemple :
Je visualise l'état des sorties RA0 et RA1 à l'aide de 2 Leds. Le souci est que la commande "PORTAbits.RA1=1" met à zéro le bit RA0 et à 1 le bit RA1 ???Code:while(1) { PORTAbits.RA0 = 1; PORTAbits.RA1 = 1; for(i=0;i<10000;i++); PORTAbits.RA0 = 0; PORTAbits.RA1 = 0; for(i=0;i<10000;i++); }
st ce normal ?? je ne vois pas pourquoi je n'arrive pas à commander directement le port bit à bit !!!
Je pense que c'est pour ça que ma librairie LCD à pas beaucoup de chance de fonctionner car je déclare les broches comme ceci :
Voila si quelqu'un a déjà eu ce problème !!!Code:/******************************************************************** * DEFINISSION DU BROCHAGE ENTRE L'ECRAN LCD ET LE PIC * ********************************************************************* * CONTROLE * * RS => RB0 (fil vert) * * RW => RB1 (fil jaune) * * E => RB2 (fil mauve) * ********************************************************************* * DONNEES SUR 4 BITS * * D4 => RC4 * * D5 => RC5 * * D6 => RC6 * * D7 => RC7 * ********************************************************************/ #define LCD_RS PORTBbits.RB0 #define LCD_RW PORTBbits.RB1 #define LCD_E PORTBbits.RB2 #define TRIS_LCD_RS TRISBbits.TRISB0 #define TRIS_LCD_RW TRISBbits.TRISB1 #define TRIS_LCD_E TRISBbits.TRISB2 #define D4 PORTCbits.RC4 #define D5 PORTCbits.RC5 #define D6 PORTCbits.RC6 #define D7 PORTCbits.RC7 #define TRIS_D4 TRISCbits.TRISC4 #define TRIS_D5 TRISCbits.TRISC5 #define TRIS_D6 TRISCbits.TRISC6 #define TRIS_D7 TRISCbits.TRISC7
-----