Ligne 2 : |
Ligne 2 : |
| | | |
| == Introduction == | | == Introduction == |
− | Les deux exemples MasterReader et MasterWriter semblent très similaires... il y a pourtant quelques différences fondamentales du point de vue du code. | + | {{bloc-etroit | text = Les deux exemples MasterReader et MasterWriter semblent très similaires... il y a pourtant quelques différences fondamentales du point de vue du code. }} |
| | | |
− | == Esclave == | + | <font color="green">'''Repérer ces différences c'est éviter de longues heures de recherche et débogage :-)'''</font> |
− | Commençons par nous concentrer sur l'esclave, une fois utilisé comme "Esclave Writer" (quand le Maître est Master Reader)... et une fois comme "Esclave Reader" (quand le Maître est Master Writer).
| |
| | | |
− | === Lorsque le Maître Lit === | + | === Master Reader : Lorsque le Maître Lit === |
− | Lorsque le maître lit, ce dernier envoi une demande d'information à l'aide de '''Wire.requestFrom(2, 6);''' (demande de 6 octets sur esclave #2). | + | {{bloc-etroit | text = |
| + | - Lorsque le maître lit, ce dernier envoi une demande d'information à l'aide de '''Wire.requestFrom(2, 6);''' (demande de 6 octets sur esclave #2). |
| | | |
− | L'esclave intercepte cette demande de donnée en enregistrant l'évènement '''onRequest''' via l'appel de '''Wire.onRequest(requestEvent);''' | + | - L'esclave intercepte cette demande de donnée en enregistrant l'évènement <font color="red">'''onRequest'''</font> via l'appel de '''Wire.onRequest(requestEvent);''' |
| | | |
− | La fonction de traitement de l'événement (''requestEvent'') renvoi les données à l'aide de '''Wire.Write(x);''' | + | - La fonction de traitement de l'événement (''requestEvent'') renvoi les données à l'aide de '''Wire.Write(x);'''}} |
| | | |
− | === Lorsque le Maître Ecrit === | + | === Master Write : Lorsque le Maître Ecrit === |
− | Lorsque le maître écrit, ce dernier envoi ses ordres à l'aide de '''Wire.beginTransmission( 4 );''', '''Wire.write(x);''' et '''Wire.endTransmission();'''. | + | - Lorsque le maître écrit, ce dernier envoi ses ordres à l'aide de '''Wire.beginTransmission( 4 );''', '''Wire.write(x);''' et '''Wire.endTransmission();'''. |
| | | |
− | De son côté l'esclave intercepte l'ordre en enregistrant l'évènement '''onReceive''' via l'appel '''Wire.onReceive(receiveEvent);''' | + | - De son côté l'esclave intercepte l'ordre en enregistrant l'évènement <font color="red">'''onReceive'''</font> via l'appel '''Wire.onReceive(receiveEvent);''' |
| | | |
− | La fonction de traitement de l'événement (''receiveEvent'') ne doit renvoyer aucun résultat... elle doit juste traiter la demande. | + | - La fonction de traitement de l'événement (''receiveEvent'') ne doit renvoyer aucun résultat... elle doit juste traiter la demande. |
| | | |
| {{Arduino-I2C-Intro-TRAILER}} | | {{Arduino-I2C-Intro-TRAILER}} |