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
Oui, C'est ça.
Comme If machin then truc.....
Pas besoin du endif.
Pour la routine d'interruption, le dernier endif appartient à "if INTCON.2 then "
et pour les variables booléennes, pas besoin d'écrire =1, c'est pareil.
Comme If machin then truc.....
Pas besoin du endif.
Pour la routine d'interruption, le dernier endif appartient à "if INTCON.2 then "
et pour les variables booléennes, pas besoin d'écrire =1, c'est pareil.
Modifié en dernier par Serge le mar. 5 mai 2020 09:41, modifié 1 fois.
Problème de séquence I2C entre deux PIC
Comme ça, sans interruptions autorisées, c'est pareil, et pas de surprise.
Tu vois un inconvénient ?
Tu vois un inconvénient ?
Code : Tout sélectionner
prg:
if INTCON.TMR0IF then 'interrupt flag Compteur TMR0'
t0=t0+1
if t1>0 then t1=t1-1
select case t0
case 1
bip=1
cli=1
case 32
bip=0
case 64
bip=1
cli=0
case 96
bip=0
case 128
t0=0
if t2>0 then t2=t2-1
if t3>0 then t3=t3-1
if t4>0 then t4=t4-1
end select
INTCON.TMR0IF = 0
endif
sortie_led=cli
if led<>cli then ' si la led Change, info à l''esclave qui gère la sortie '
data_1 = 40+led
gosub WR_i2C
led=cli
endif
if Entree_20 and not Entree_18 and hb<50000 then ' Si Bouton Poussoir vers le bas'
...
Problème de séquence I2C entre deux PIC
Problème de séquence I2C entre deux PIC
Sur ces deux modules, ça ne plante pas, (ils sont plus light) mais sur le module complet, je vais essayer sans l'interruption Maitre.
Par contre mon module de lecture lui, ne fonctionne pas. RD_I2C: je dois encore trouver pourquoi.
Les séquences de lectures plantent après l'adresse de lecture, pas d'acknowledge de l'esclave sur l'adresse de lecture. et donc plus rien après l'adresse.
Enfin... pas vraiment plus rien. J'obtiens les quatres pic qui doivent être à mon avis les CKP à 1 mais sans les data.
Par contre mon module de lecture lui, ne fonctionne pas. RD_I2C: je dois encore trouver pourquoi.
Les séquences de lectures plantent après l'adresse de lecture, pas d'acknowledge de l'esclave sur l'adresse de lecture. et donc plus rien après l'adresse.
Enfin... pas vraiment plus rien. J'obtiens les quatres pic qui doivent être à mon avis les CKP à 1 mais sans les data.
Modifié en dernier par Serge le mar. 5 mai 2020 09:57, modifié 1 fois.
Problème de séquence I2C entre deux PIC
Quand tu dis "plante", cela veut dire qu'il reste en permanence dans la boucle d'attente de l'acknowledge ?
Il est pas vraiment planté, juste le soft ne prend pas en charge le problème, il pourrait afficher un message d'erreur.
C'est donc pas d'acknowledge sur l'adresse en read, quand tu parlais de pas d'acknowledge sur la première data, c'est autre chose, ce n'est plus d'actualité ?
Il est pas vraiment planté, juste le soft ne prend pas en charge le problème, il pourrait afficher un message d'erreur.
C'est donc pas d'acknowledge sur l'adresse en read, quand tu parlais de pas d'acknowledge sur la première data, c'est autre chose, ce n'est plus d'actualité ?
Problème de séquence I2C entre deux PIC
Problème de séquence I2C entre deux PIC
Non, je m'étais trompé. Ce n'était pas le premier data, c'était l'adresse.
Comme tu le vois sur l'écran, on a l'adresse, derrière le " repet-Start" jusque-là, c'est bon, et après les quatre CKP (à mon avis) mais rien des datas
Comme tu le vois sur l'écran, on a l'adresse, derrière le " repet-Start" jusque-là, c'est bon, et après les quatre CKP (à mon avis) mais rien des datas
Modifié en dernier par Serge le mar. 5 mai 2020 11:05, modifié 2 fois.
Problème de séquence I2C entre deux PIC
Problème de séquence I2C entre deux PIC
Je te crois, je vais le remettre, mais je comprend pas qu'on teste un bus libre quand il ne peut pas l'être ?
Ca voudrait dire que si un autre pic essaye de prendre la ligne avec ce même test, il pourrait la prendre avant le stop de l'autre ???
Oui, l'écriture ça marche pour le moment sur ces deux modules.
Ca voudrait dire que si un autre pic essaye de prendre la ligne avec ce même test, il pourrait la prendre avant le stop de l'autre ???
Oui, l'écriture ça marche pour le moment sur ces deux modules.
Retourner vers « Le forum Fantas-PIC »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 5 invités