mirror of
https://github.com/arduino/Arduino.git
synced 2025-03-15 12:29:26 +01:00
Merge branch 'sam-wire-repeated-starts' of https://github.com/sandeepmistry/Arduino
This commit is contained in:
commit
d3e3b8b377
@ -332,27 +332,25 @@ void TwoWire::onService(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status != SLAVE_IDLE) {
|
if (status != SLAVE_IDLE && TWI_STATUS_EOSACC(sr)) {
|
||||||
if (TWI_STATUS_TXCOMP(sr) && TWI_STATUS_EOSACC(sr)) {
|
if (status == SLAVE_RECV && onReceiveCallback) {
|
||||||
if (status == SLAVE_RECV && onReceiveCallback) {
|
// Copy data into rxBuffer
|
||||||
// Copy data into rxBuffer
|
// (allows to receive another packet while the
|
||||||
// (allows to receive another packet while the
|
// user program reads actual data)
|
||||||
// user program reads actual data)
|
for (uint8_t i = 0; i < srvBufferLength; ++i)
|
||||||
for (uint8_t i = 0; i < srvBufferLength; ++i)
|
rxBuffer[i] = srvBuffer[i];
|
||||||
rxBuffer[i] = srvBuffer[i];
|
rxBufferIndex = 0;
|
||||||
rxBufferIndex = 0;
|
rxBufferLength = srvBufferLength;
|
||||||
rxBufferLength = srvBufferLength;
|
|
||||||
|
|
||||||
// Alert calling program
|
// Alert calling program
|
||||||
onReceiveCallback( rxBufferLength);
|
onReceiveCallback( rxBufferLength);
|
||||||
}
|
|
||||||
|
|
||||||
// Transfer completed
|
|
||||||
TWI_EnableIt(twi, TWI_SR_SVACC);
|
|
||||||
TWI_DisableIt(twi, TWI_IDR_RXRDY | TWI_IDR_GACC | TWI_IDR_NACK
|
|
||||||
| TWI_IDR_EOSACC | TWI_IDR_SCL_WS | TWI_IER_TXCOMP);
|
|
||||||
status = SLAVE_IDLE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Transfer completed
|
||||||
|
TWI_EnableIt(twi, TWI_SR_SVACC);
|
||||||
|
TWI_DisableIt(twi, TWI_IDR_RXRDY | TWI_IDR_GACC | TWI_IDR_NACK
|
||||||
|
| TWI_IDR_EOSACC | TWI_IDR_SCL_WS | TWI_IER_TXCOMP);
|
||||||
|
status = SLAVE_IDLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status == SLAVE_RECV) {
|
if (status == SLAVE_RECV) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user