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 ---
Problème de séquence I2C entre deux PIC
Problème de séquence I2C entre deux PIC
Problème de séquence I2C entre deux PIC
Problème de séquence I2C entre deux PIC
Bonjour Satinas.
ça y est, ça marche.
J'avais fait un Copié collé, et laissé les sous programmes en tête !!!
Evidamment, ça pouvait pas marcher.
Donc là, ça marche, mais si j'en reste à ce stade, ça marche aussi de mon côté, là ou ça se complique, c'est quand je gère les interruptions sur le Maître pour faire changer l'état d'une led sur l'esclave tout en envoyant des séquences d'autres commandes sur l'esclave sans arrêter ce clignottement de la led Esclave.
Et c'est peut être là que se trouve le problème.
Pourtant, on gère bien que le bus soit libre pour envoyer chaque séquence, Et l'esclave réceptionne chaque séquence dans une seule interruption.
ça y est, ça marche.
J'avais fait un Copié collé, et laissé les sous programmes en tête !!!
Evidamment, ça pouvait pas marcher.
Donc là, ça marche, mais si j'en reste à ce stade, ça marche aussi de mon côté, là ou ça se complique, c'est quand je gère les interruptions sur le Maître pour faire changer l'état d'une led sur l'esclave tout en envoyant des séquences d'autres commandes sur l'esclave sans arrêter ce clignottement de la led Esclave.
Et c'est peut être là que se trouve le problème.
Pourtant, on gère bien que le bus soit libre pour envoyer chaque séquence, Et l'esclave réceptionne chaque séquence dans une seule interruption.
Problème de séquence I2C entre deux PIC
Bonjour Serge,
Oui, en fait je teste en C tes instructions, et en C on doit mettre les fonctions avant le main, si on ne les a pas déclarées au préalable.
J'ai pas compris, il vaut mieux ne pas avoir d'interruption sur le maître pour le moment. Il faudrait passer à la réception de plusieurs octets par l'esclave, et les stocker. J'avais ça qui allait bien. Le CKP = 1 est important. Je n'aime pas trop la réception de plusieurs octets dans l'interruption, mais tant que ça marche Vérifie que c'est bon à tous les coups.
J'ai testé ça hier mais dans une boucle, quand je mets au point, je préfère éviter les interruptions, on peut les ajouter après quand tout va bien.
Ben voila, si tu ajoutes d'autres interruptions, il va falloir éviter d'avoir une interruption bloquante, cela remet en question le code ci-dessus et on en revient là.
viewtopic.php?p=10506#p10506
Oui, en fait je teste en C tes instructions, et en C on doit mettre les fonctions avant le main, si on ne les a pas déclarées au préalable.
J'ai pas compris, il vaut mieux ne pas avoir d'interruption sur le maître pour le moment. Il faudrait passer à la réception de plusieurs octets par l'esclave, et les stocker. J'avais ça qui allait bien. Le CKP = 1 est important. Je n'aime pas trop la réception de plusieurs octets dans l'interruption, mais tant que ça marche Vérifie que c'est bon à tous les coups.
J'ai testé ça hier mais dans une boucle, quand je mets au point, je préfère éviter les interruptions, on peut les ajouter après quand tout va bien.
Code : Tout sélectionner
interruption
IF PIR1.3 = 1 ; received byte
IF SSPSTATbits.0
poubelle = SSPBUF ; adresse
SSPCON1.4 = 1
IF NOT SSPSTATbits.5 AND NOT SSPSTATbits.2
WHILE NOT SSPSTAT.0 : WEND
data_1 = SSPBUF ; data 1
SSPCON1.4 = 1
WHILE NOT SSPSTAT.0 : WEND
data_2 = SSPBUF ; data 2
SSPCON1.4 = 1
WHILE NOT SSPSTAT.0 : WEND
data_3 = SSPBUF ; data 3
SSPCON1.4 = 1
recu = 1
ENDIF
ENDIF
PIR1.3 = 0;
ENDIF
Ben voila, si tu ajoutes d'autres interruptions, il va falloir éviter d'avoir une interruption bloquante, cela remet en question le code ci-dessus et on en revient là.
viewtopic.php?p=10506#p10506
Problème de séquence I2C entre deux PIC
Problème de séquence I2C entre deux PIC
Problème de séquence I2C entre deux PIC
Problème de séquence I2C entre deux PIC
- paulfjujo
Expert- Messages : 2828
- Âge : 74
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
si ça peut t'aider un peu
je suis parti d'un exemple donné par MikroE Libstock ref: 1470586910_i2c_master_slave_mikroc_pic.zip pour 16F887 .
qui est formateur, car s'appuye sur la note microchip AN 734 I2C Maitre -esclave.
http://paulfjujo.free.fr/_16F1847/16F18 ... sclave_I2C
je suis parti d'un exemple donné par MikroE Libstock ref: 1470586910_i2c_master_slave_mikroc_pic.zip pour 16F887 .
qui est formateur, car s'appuye sur la note microchip AN 734 I2C Maitre -esclave.
http://paulfjujo.free.fr/_16F1847/16F18 ... sclave_I2C
Retourner vers « Le forum Fantas-PIC »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités