File tree Expand file tree Collapse file tree 1 file changed +16
-16
lines changed Expand file tree Collapse file tree 1 file changed +16
-16
lines changed Original file line number Diff line number Diff line change @@ -219,13 +219,26 @@ void TwoWire::onService(void)
219
219
{
220
220
if ( sercom->isSlaveWIRE () )
221
221
{
222
- if (sercom->isAddressMatch ()) // Address Match
222
+ if (sercom->isStopDetectedWIRE () ||
223
+ (sercom->isAddressMatch () && sercom->isRestartDetectedWIRE ())) // Stop or Restart detected
223
224
{
224
225
sercom->prepareAckBitWIRE ();
225
226
sercom->prepareCommandBitsWire (0x03 );
226
227
227
- // Is a request ?
228
- if (sercom->isMasterReadOperationWIRE ())
228
+ // Calling onReceiveCallback, if exists
229
+ if (onReceiveCallback)
230
+ {
231
+ onReceiveCallback (available ());
232
+ }
233
+
234
+ rxBuffer.clear ();
235
+ }
236
+ else if (sercom->isAddressMatch ()) // Address Match
237
+ {
238
+ sercom->prepareAckBitWIRE ();
239
+ sercom->prepareCommandBitsWire (0x03 );
240
+
241
+ if (sercom->isMasterReadOperationWIRE ()) // Is a request ?
229
242
{
230
243
// Calling onRequestCallback, if exists
231
244
if (onRequestCallback)
@@ -247,19 +260,6 @@ void TwoWire::onService(void)
247
260
248
261
sercom->prepareCommandBitsWire (0x03 );
249
262
}
250
- else if (sercom->isStopDetectedWIRE () || sercom->isRestartDetectedWIRE ()) // Stop or Restart detected
251
- {
252
- sercom->prepareAckBitWIRE ();
253
- sercom->prepareCommandBitsWire (0x03 );
254
-
255
- // Calling onReceiveCallback, if exists
256
- if (onReceiveCallback)
257
- {
258
- onReceiveCallback (available ());
259
- }
260
-
261
- rxBuffer.clear ();
262
- }
263
263
}
264
264
}
265
265
You can’t perform that action at this time.
0 commit comments