Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Modérateur : Jérémy
Problème contrôle lcd sur 16f1937
comment ca marche
Déjà petite boulette, dans le fichier LIB_LCD.c vous virez le fichier entête (#include "tempori.h" //entête macro de la gestion du temps) qui est mon fichier macro pour mes tempos. Si les _delay_us ne fonctionnent pas; je vous donnerais ce fichier . Vous virez aussi, le spg busy qui en état ne fonctionne pas.
Alors tout part et est dans le fichier entête.Tout ce qui est encadré en pointille vous devez le réglé a votre demande, exemple:
Ici c'est mes données sont sur le PORTC les pins RW RS E sont respectivement sur RB2 RB1 RB0 donc a vous suivant votre câblage de faire la modif de même pour XTAL_FREQ qui est l'etalon pour les delays
autre exemple
l'instruction SET qui sert a l'init du LCD. SET ici est en mode HUIT_BIT, 2 lignes, et plus en taille 5x10 .Si vous voulez passer en mode 4bits il suffit de replacer HUIT_bit par QUATRE_BIT et SET devient:
c'est pareil pour
ici nous avons le display sur on le curseur sur on le clignotement curseur sur on
Il en va de meme ,pour toutes les instructions.(4 instructions sont modifiables)
Niveau routines elles sont dans le .h
Sinon les voici
La Pulse_LCD qui est la clef de voûte, vous ne l'appelez jamais, c'est les autres routines qui s'en chargent.
La routine instruc est la, pour par exemple ,le display on/off, en cas de mise en mode sleep ou pour arrêter, ou mettre en service le curseur
voila cette lib fonctionne aussi bien sur 16F et 18F 4/8 bits ,juste ! attention au delay, pour les contrôleurs HD44780 et KS0066U
si problème, question sur l'init tempo ou autre au plaisir de vous lire
A+
PS ne pas toucher au fichier source sauf pour les modifs plus haut allez pour eviter cela le fichier modifie source
Déjà petite boulette, dans le fichier LIB_LCD.c vous virez le fichier entête (#include "tempori.h" //entête macro de la gestion du temps) qui est mon fichier macro pour mes tempos. Si les _delay_us ne fonctionnent pas; je vous donnerais ce fichier . Vous virez aussi, le spg busy qui en état ne fonctionne pas.
Alors tout part et est dans le fichier entête.Tout ce qui est encadré en pointille vous devez le réglé a votre demande, exemple:
Code : Tout sélectionner
#define Donnée PORTC // nous sommes sous 16F //.
//.
/* Pins connectés sur le LCD */
//.
#define RW PORTBbits.RB2
#define RS PORTBbits.RB1 //.
#define E PORTBbits.RB0
//.
#define _XTAL_FREQ 20000000 // oscillator frequency //.
Ici c'est mes données sont sur le PORTC les pins RW RS E sont respectivement sur RB2 RB1 RB0 donc a vous suivant votre câblage de faire la modif de même pour XTAL_FREQ qui est l'etalon pour les delays
autre exemple
Code : Tout sélectionner
/* Fonction Set divers definitions */
#define QUATRE_BIT 0 /* 4-bit Interface */
#define HUIT_BIT 16 /* 8-bit Interface */
#define LIGNE1 0 /* LCD 1 LIGNE */
#define LIGNE2 8 /* LCD 2 LIGNES ET + */
#define TAILLE_5X7 0 /* MATRICE 5x7 */
#define TAILLE_5X10 4 /* MATRICE 5x10 */
//..........................................................................
#define SET 32 | (HUIT_BIT) | (LIGNE2) | (TAILLE_5X10) //.
//..........................................................................
l'instruction SET qui sert a l'init du LCD. SET ici est en mode HUIT_BIT, 2 lignes, et plus en taille 5x10 .Si vous voulez passer en mode 4bits il suffit de replacer HUIT_bit par QUATRE_BIT et SET devient:
Code : Tout sélectionner
#define SET 32 | (QUATRE_BIT) | (LIGNE2) | (TAILLE_5X10) //.
c'est pareil pour
Code : Tout sélectionner
//...........................................................................
#define ECRAN_CURS 0b00001000 | (DISON) | (CURSEUR_ON) | (CLIGN_ON)//.
//...........................................................................
ici nous avons le display sur on le curseur sur on le clignotement curseur sur on
Il en va de meme ,pour toutes les instructions.(4 instructions sont modifiables)
Niveau routines elles sont dans le .h
Sinon les voici
Code : Tout sélectionner
void Clear_XC8_LCD (void); //efface écran curseur haut gauche
void DD_RAM_XC8_LCD (unsigned char,unsigned char); //position curseur ligne colonne
void Ecran_Curs (unsigned char); //A/M écran curseur
void Home_XC8_LCD (void); //curseur haut gauche
void Init_XC8_LCD (void); //initialisation LCD
void Pulse_XC8_LCD (void); //validation donnée port lcd
void Write_XC8_LCD (unsigned char *pLCD,int); //écriture chaîne caractères
void Instruc (unsigned char jeux); //envoi un instruction ex;display_off
La Pulse_LCD qui est la clef de voûte, vous ne l'appelez jamais, c'est les autres routines qui s'en chargent.
La routine instruc est la, pour par exemple ,le display on/off, en cas de mise en mode sleep ou pour arrêter, ou mettre en service le curseur
voila cette lib fonctionne aussi bien sur 16F et 18F 4/8 bits ,juste ! attention au delay, pour les contrôleurs HD44780 et KS0066U
si problème, question sur l'init tempo ou autre au plaisir de vous lire
A+
PS ne pas toucher au fichier source sauf pour les modifs plus haut allez pour eviter cela le fichier modifie source
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Problème contrôle lcd sur 16f1937
Problème contrôle lcd sur 16f1937
Merci
NON j'aime bien aussi faire un projet en C, le problème c'est qui ne faut pas, que je le decompli sinon j'utilise alors Macro ou inline (bien aussi ca ) est la......
Pour revenir a la lib, elle simple, AMHA lisible, Le problème c'est que l'on ne peut pas la fermer,et faire appel a un fichier objet, comme la lib math par exemple, car il y a beaucoup de paramètres qui rentrent en jeux et a modifier. On aurait pu,les passer par les fonctions du style int(char) , mais il faut allez dans la DS et reconstituer le char, alors que tout est dans le fichier entête.Ce qui pose aussi une autre question: manier d'incorporer ces propres LIB ,dans un projet ,et la c'est une autre sujet, tres vaste, sujet avec plein plein d’opportunités (LIB ASM avec du C) par exemple a suivre ........
A+
NON j'aime bien aussi faire un projet en C, le problème c'est qui ne faut pas, que je le decompli sinon j'utilise alors Macro ou inline (bien aussi ca ) est la......
Pour revenir a la lib, elle simple, AMHA lisible, Le problème c'est que l'on ne peut pas la fermer,et faire appel a un fichier objet, comme la lib math par exemple, car il y a beaucoup de paramètres qui rentrent en jeux et a modifier. On aurait pu,les passer par les fonctions du style int(char) , mais il faut allez dans la DS et reconstituer le char, alors que tout est dans le fichier entête.Ce qui pose aussi une autre question: manier d'incorporer ces propres LIB ,dans un projet ,et la c'est une autre sujet, tres vaste, sujet avec plein plein d’opportunités (LIB ASM avec du C) par exemple a suivre ........
A+
Problème contrôle lcd sur 16f1937
Problème contrôle lcd sur 16f1937
Bonjour,
Sorry pour cette longue période sans nouvelle.
Petit retour sur mon problème de librairie qui semble avoir été corrigé. J'ai simplement réajusté les delays. Il semble que le 16F1937 soit bien capricieux.
Problème résolut ou vis caché ? Je vous tiendrais au courant si un problème persiste.
Ps: Merci pour ton partage Maï
Cdt.
Sorry pour cette longue période sans nouvelle.
Petit retour sur mon problème de librairie qui semble avoir été corrigé. J'ai simplement réajusté les delays. Il semble que le 16F1937 soit bien capricieux.
Problème résolut ou vis caché ? Je vous tiendrais au courant si un problème persiste.
Ps: Merci pour ton partage Maï
Cdt.
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 75 invités