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 ---
Forum général sur le langage C !

Modérateur : Jérémy

LCD2x16 I2C via PCF8754 MPLAB XC8 bug ?
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2598
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#11 Message par paulfjujo » lun. 3 avr. 2023 13:51

satinas a écrit :Le timer tourne avec FOSC donc Ftimer = 64000000/2/190 -> 168421Hz
Pour l'i2c c'est Fscl = 168421/5 = 33,68kHz


OUi, OK ,j'avais T2CLK=0x02; => FOSC

avec
avec I2C1CON2bits.FME=0;
SQA mesure de la frequence RC3 SCLK 18.02+11.76=29.76µS -> 33Khz
Fscl = 168421/5

avec I2C1CON2bits.FME=1;
SQA mesure de la frequence RC3 SCLK 12.06+11.76= 23.82µS ->41.98Khz
Fscl = 168421/4

J'ai meme e rajouté un 2em LCD en 20x4 sur le bus I2C (avec un PigBack PCF8754 en 0x27)
/ pilotage de 2 LCD .. affichage final alterné entre les 2 LCD
// Indice impair sur 2x16 et pair sur 4x20LCD
// rajout commande | LCD_BL pour pouvoir piloter le Back light du 4x20 car avec son PigBack PCF dessus

:sifflotte: tout est OK maintenant ,apres ces modifs :

* modif#1:
plusieur tables au lieu d'un grand tableau avec pointeur pour
les caractere speciaux

*modif #2
corrigé bug sur caracteres speciaux : 1 blanc de trop sur 7eptieme char
const char *Special_Name[24*7]=
{"DEGREE","EURO ","OHM ","PF ","Droite","Gauche","CANCEL","Check.", // pour caracteres Speciaux
"Zero ","un ","deux ","trois ","quatre","cinq ","six ","Sept ",// pour Barre Graphe Horizontale
"Zero ","un ","deux ","trois ","quatre","cinq ","six ","Sept "};// pour barre Graphe Vertical
Probleme sur "Sept "
1 blanc de trop !!!!

*Modif #3
was ...void LCD_Load_Custom_Chars( char Set);
is void LCD_Load_Custom_Chars(unsigned char Set);
unsigned car on a Set<<6 resultat 3x64 > à 128 et uniquement positif!

#modif 4
const char Efface[17]=" "; //( was 16!)




Je pense qu'au final , le bug etait au niveau de l'usage d'un pointeur au lieu d'indice de plusieurs tables séparées ...
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Pikachu et 126 invités