Salut, je ne sais pas si c'est le bon forum pour ma question.
J'ai fait une application en C dans des microControleurs ATMega 8. Mais j'ai une question au niveau de l'i2c. Voici ce que je fais:
Ma question est, quand je fais un stop sur l'i2C, est ce que dans l'interruption du slave je suis oblige de relacher l'i2c et couper l'interruption, moi j'en ai besoin tt le temps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 i2c_start(); i2c_write(ADRESSE_IC5); i2c_write(0x00); i2c_write(0x00); i2c_stop(); i2c_start(); i2c_write(ADRESSE_IC1); i2c_write(0xFF); i2c_write(0xFF); i2c_stop(); i2c_start(); i2c_write(ADRESSE_IC1 | MODE_LECTURE); touches = i2c_read(0); i2c_stop();
Mon problème est le suivant: La code est le même dans mes 2 esclaves i2C mais celui au quel je fais une lecture, à un moment ne fait plus ce que je lui demande. Donc je me demandais si ce n'etais pas parce que je relache par la ligne i2C au bout d'une requete. Ou aussi peut etre parce que je fais suivre trop vite une requete d'ecriture puis de lecture sur le meme esclave???
Merci
Partager