1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-08-07 00:04:36 +03:00

Wire library patch to provide better error handling.

This commit is contained in:
David A. Mellis
2008-06-21 23:16:27 +00:00
parent 3233d7939b
commit 0bdc02cea5
6 changed files with 65 additions and 29 deletions

View File

@@ -77,22 +77,24 @@ void TwoWire::begin(int address)
begin((uint8_t)address);
}
void TwoWire::requestFrom(uint8_t address, uint8_t quantity)
uint8_t TwoWire::requestFrom(uint8_t address, uint8_t quantity)
{
// clamp to buffer length
if(quantity > BUFFER_LENGTH){
quantity = BUFFER_LENGTH;
}
// perform blocking read into buffer
twi_readFrom(address, rxBuffer, quantity);
uint8_t read = twi_readFrom(address, rxBuffer, quantity);
// set rx buffer iterator vars
rxBufferIndex = 0;
rxBufferLength = quantity;
rxBufferLength = read;
return read;
}
void TwoWire::requestFrom(int address, int quantity)
uint8_t TwoWire::requestFrom(int address, int quantity)
{
requestFrom((uint8_t)address, (uint8_t)quantity);
return requestFrom((uint8_t)address, (uint8_t)quantity);
}
void TwoWire::beginTransmission(uint8_t address)
@@ -111,15 +113,16 @@ void TwoWire::beginTransmission(int address)
beginTransmission((uint8_t)address);
}
void TwoWire::endTransmission(void)
uint8_t TwoWire::endTransmission(void)
{
// transmit buffer (blocking)
twi_writeTo(txAddress, txBuffer, txBufferLength, 1);
int8_t ret = twi_writeTo(txAddress, txBuffer, txBufferLength, 1);
// reset tx buffer iterator vars
txBufferIndex = 0;
txBufferLength = 0;
// indicate that we are done transmitting
transmitting = 0;
return ret;
}
// must be called in: