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

LCD en I²C
Pat
Débutant
Débutant
Messages : 43
Enregistré en : juillet 2015

#41 Message par Pat » ven. 28 août 2015 15:24

normalement il y a un réglage de contraste

Quel idée de démarrer avec un truc totalement inconnu
Il y a juste 2 liens pour la référence sur google et en Chinois..

HD44780 ça fonctionne tout seul , il y a des centaines de lien voire beaucoup plus

t as essayé la tempo?
si ça se trouve il n'a pas le temps d'afficher

LCD en I²C
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#42 Message par Jérémy » ven. 28 août 2015 15:35

Quel idée de démarrer avec un truc totalement inconnu

Oui , grosse erreur .

HD44780 ça fonctionne tout seul , il y a des centaines de lien voire beaucoup plus

il me fallait un écran I2C absolument . J'ai trouvé que celui ci chez farnell !!

t as essayé la tempo?
si ça se trouve il n'a pas le temps d'afficher

Dès que je rentre à la maison . dans 2 H environ . Oui j'y avais pensé , mais comme je reboucle en permanence avec une tempo pour la led, je devrais un peu voir quelques choses . La je me mets a 5cm de l’écran pour voir s'il ne se passe pas quelques choses même de très faible .

Mais j'en reviens toujours à mon curseur . A la fin de initialisation , d’après ce que je comprends , je devrais avoir mon curseur sur al première ligne apparaitre , sans même écrire de caractères .

Sait tu exactement ce que signifie le I2C_init ( 100000) du début ? il disent la vitesse du bus à calculer ? mais je comprends pas exactement .
C'est en faisant des erreurs, que l'on apprend le mieux !!!

LCD en I²C
Pat
Débutant
Débutant
Messages : 43
Enregistré en : juillet 2015

#43 Message par Pat » ven. 28 août 2015 15:36

j'ai trouvé un fil sur un LCD similaire BATRON
le probleme serait sur un decalage de 0xC0 des caracteres ! pour afficher 'A'
en fait le decalage de base serait plutot de 127
127 + 65 (code de A) =192 = 0xC0


Effectivement !

Sur le datashhet le code pour
A c est 0xC1
B 0xC2
etc ...

donc ASCII + 128d

page 24

LCD en I²C
Pat
Débutant
Débutant
Messages : 43
Enregistré en : juillet 2015

#44 Message par Pat » ven. 28 août 2015 16:03

Comment on pilote R/W et RS avec l I2C ?

Pas trouvé...

LCD en I²C
Pat
Débutant
Débutant
Messages : 43
Enregistré en : juillet 2015

#45 Message par Pat » ven. 28 août 2015 16:14


C-bus:
// Write a user defined character into the CGRAM
startI2C();
// PCF2119 slave address for write, SA0 is connected to Vdd
SendI2CAddress(0x76);
// MSB (Continuation bit Co) = 0, more than one byte may follow. Bit6, RS=0, next byte
// is command byte
i2c_write(0x00);
// 2 lines x 16, 1/18 duty, basic instruction set. Next byte will be another command.
i2c_write(0x24);
// Set CGRAM address to 0
i2c_write(0x40);
// Repeated Start condition
sta


Il y a 2 fonctions !!!!!!!!!!!!

Une pour les commandes
l'autre pour les datas


En fait 4 Modes dans le datasheet

Basic instructions (bit H = 0 or 1)
Function_set 0 0
BF_AC 0 1 Busy Flag Adress Counter
Read_data 1 1 READ_DATA
Write_data 1 0 WRITE_DATA

LCD en I²C
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2597
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#46 Message par paulfjujo » ven. 28 août 2015 16:23

que signifie le I2C_init ( 100000) du début ? il disent la vitesse du bus à calculer ?


Avec mikroC, la valeur 100 000 => 100KHz vitesse du bus I2C
il ya des reglages au niveau de certains registres MCU à faire que si on travaille en assembleur
ou si FOSC est mal parametré dans MikroC.
Aide toi, le ciel ou FantasPic t'aidera

LCD en I²C
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#47 Message par Jérémy » ven. 28 août 2015 16:28

Avec mikroC, la valeur 100 000 => 100KHz vitesse du bus I2C

Ok , je pourrais essayer a 400Khz ? ca mange pas de pain .==, au point ou j'en suis . en écrivant 400 000 , ca le fait ? ou c'est du binaire ?

Comment on pilote R/W et RS avec l I2C ?

Pour R/W c'est automatique d'apres ce que j'ai cru comprendre , pour lire il faut envoyer une commande !

Pareil pour le register select ; Seulement 2 registre a modifier , soit on écrit dans le registe Function , soit data ; cela se sélectionne grâce à la fonction qui suit tout de suite après l'envoie de l'adresse esclave .
C'est en faisant des erreurs, que l'on apprend le mieux !!!

LCD en I²C
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#48 Message par Jérémy » ven. 28 août 2015 17:39

test avec 5 secondes toujours RIEN.
test en 400Khz toujours RIEN.

Je vais chercher et regarder cette histoire de contraste
C'est en faisant des erreurs, que l'on apprend le mieux !!!

LCD en I²C
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#49 Message par Jérémy » ven. 28 août 2015 19:08

Sur ma platine test avec les picaxes , j'arrive a faire apparaitre des choses . Avec un programme complétement incensé

Voila le programme

Code : Tout sélectionner

#PICAXE 28X2    ' type de picaxe

'########################    Configuration I/O    ####################
symbol compteur =  b2
symbol address = b3

'
########################     Initialisation      ###################
setfreq M8     ' configuration de la vitesse

hi2csetup i2cmaster, 0x74 , i2cfast, i2cbyte ' 
passe le picaxe en master avec l'adresse de l'esclave mode rapide 400KhZon parle en byte

pause 300    
'une pause de 150ms

'
########################   Programme Principal   ##########################
do
    
inc compteur        ' on incremente un compteur
hi2cout 1,(compteur)    ' 
envoi sur le bus I²C de la location ici "1" et de données ici "compteur"


loop


Quelqu'un a dit un jour, c'est en faisant n'importe quoi, qu'on devient n’importe qui . exit

Avec ce code , mon afficheur affiche des choses par intermiteancce . Je n'arrive pas a trouver la relation car des que je touche a quelques choses avec du sens , le'ecran reste inactif.

Un truc de fou, je vous dis , un truc de fou
C'est en faisant des erreurs, que l'on apprend le mieux !!!

LCD en I²C
Pat
Débutant
Débutant
Messages : 43
Enregistré en : juillet 2015

#50 Message par Pat » ven. 28 août 2015 19:18

Pour R/W c'est automatique d'apres ce que j'ai cru comprendre , pour lire il faut envoyer une commande !


Non !!!!
Il y a 2 fonction separées

regarde l'exemple

SendI2CAddress(0x76);
i2c_write(0x00);


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 26 invités