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 l'Assembleur !

Modérateur : mazertoc

Scanner module I2C ( trouver son adresse)
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#1 Message par francois77 » lun. 18 juil. 2022 18:01

Bonjour,

Pour un 16f876, je cherche un morceau de programme pour trouver l'adresse d'un module I2C

Merci d'avance

Francois

Scanner module I2C ( trouver son adresse)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2617
Enregistré en : juillet 2016
Localisation : Terre

#2 Message par Temps-x » mar. 19 juil. 2022 02:16

Bonsoir francois77, et tout le forum,

Voici une routine que j'ai écrit, pour adresse 8 bits, ça sent l'écran Oled i2c :-D

Pour lire l'adresse tu installes 8 leds sur le PORTB, pour chaque led d'allumé cela correspond à un, pour celle qui son éteint ça correspond à zéro

Exemple : 01111000 correspond à 0x78

Voici le schéma

I2C-Scanne.jpg


Dans l'exemple j'utilise un Pic16F876A, mais le programme est compatible pour certain Pic16F et Pic18F (voir avec la datasheet) téléchargement ICI

A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le mar. 19 juil. 2022 21:01, modifié 4 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Scanner module I2C ( trouver son adresse)
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#3 Message par francois77 » mar. 19 juil. 2022 06:06

Bonjour Temps-X

J’ai posté ce sujet pour plusieurs raisons

Complétement claqué hier par la température

Pas trouvé ce morceau de code sur le net et mes essais de programmation etait non concluants


Et je trouvais intéressant de poster ce sujet qui est utilisable sur un autre pic pour une éventuelle utilisation ultérieure

J’ai testé au réveil ton code avec un ds13007 et un écran Oled

Pour le ds 1307 => D0 => ok

Pour l’écran oled => 7A => ce qui parait normal 0101 1110

Il me reste à comprendre maintenant pourquoi mon programme bug en ic2 et cela uniquement sur l’écran oled

je vais depouiller tes macros dans la journée si la temperature est clemente

Merci pour ton retour aussi rapide

Bonne journée

Scanner module I2C ( trouver son adresse)
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2617
Enregistré en : juillet 2016
Localisation : Terre

#4 Message par Temps-x » mar. 19 juil. 2022 21:25

Bonsoir francois77, et tout le forum,

Comme tu peux le voir, j'ai mi le schéma ci-dessus

francois77 a écrit :Source du message Pas trouvé ce morceau de code sur le net

Les Pic ne son pas aussi connu que Arduino, il existe bien des codes source pour Pic sur la détection I2C, mais presse que toute son rédigé en langage de haut niveau, comme MikroC :sad:

Le problème pour la détection de I2C c'est que tu ne peux pas utiliser les interruptions, sous peine d'effacer les bits qui son prévu pour I2C.

La plupart des codes source utilise le WATCHDOG qu'il faut remettre à zéro à chaque instant, je n'aime pas beaucoup cette méthode.

Je préfère faire une temporisation, c'est bien mieux ..., et c'est ce que j'ai fait dans mon programme.

francois77 a écrit :Source du message Et je trouvais intéressant de poster ce sujet qui est utilisable sur un autre pic pour une éventuelle utilisation ultérieure

Ta bien fait de le faire....

francois77 a écrit :Source du message Pour l’écran oled => 7A => ce qui parait normal 0101 1110


J'ai regardé mon écran, il y figure 2 adresses 0x78 et 0x7A, le mien est paramétré sur 0x78, donc si tu as 0x7A ça doit être bon.

Les adresses marqué sur les écrans Oled son utilisable directement,c'est bizarre mais c'est comme ça :-)

francois77 a écrit :Source du message Il me reste à comprendre maintenant pourquoi mon programme bug en ic2 et cela uniquement sur l’écran oled


Si tu veux tu peux mettre la source en téléchargement, je regarderais quand j'aurais 5 minutes.

francois77 a écrit :Source du message si la temperature est clemente

Ça devrait ce calmer cette nuit, d'après météo France, au boulot sa devient insupportable, vive le froid ... :lol:

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

Scanner module I2C ( trouver son adresse)
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#5 Message par francois77 » mar. 19 juil. 2022 23:09

Bonsoir,

Problème résolu pour l'écran en I2C

La solution était simple et non logiciel.

Pour le plaisir, je souhaitais mettre en concurrence un module Oled i2c et un module SPI sur Proteus piloté par le même 16f876.

Le logiciel n’est pas d’accord … ( MPLAB ou proteus ?)

La suppression de l’écran SPI a permis de refaire fonctionner mon code sans aucune modification

(à minima pour ce soir l’init de l’oled en I2C)

Et encore merci pour ton codage, qui est vraiment propre et lisible pour un débutant

A+

Francois

A suivre sur le sujet Oled dans les prochains jours, notamment sur les temps de cycle des 2 modes (SPI/I2C)


Retourner vers « Langage ASM »

Qui est en ligne

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