I2C: wrap the currently abandoned code for reading properly.
Not removed entirely, because it might be needed later.
This commit is contained in:
parent
ecaab2423c
commit
eb21ac7485
8
i2c.c
8
i2c.c
|
|
@ -345,8 +345,9 @@ ISR(TWI_vect) {
|
|||
// Try to resend when the bus became free.
|
||||
TWCR = (1<<TWINT)|(I2C_MODE<<TWEA)|(1<<TWSTA)|(0<<TWSTO)|(1<<TWEN)|(1<<TWIE);
|
||||
break;
|
||||
#if 0
|
||||
// Note: we currently have no receive buffer, so we can't receive anything.
|
||||
|
||||
#ifdef I2C_READ_SUPPORT
|
||||
|
||||
case TW_MR_SLA_ACK:
|
||||
// SLA+R was sent, got АСК, then received a byte.
|
||||
if (i2c_index + 1 == i2c_byte_count) {
|
||||
|
|
@ -381,7 +382,8 @@ ISR(TWI_vect) {
|
|||
// Send stop condition.
|
||||
TWCR = (1<<TWINT)|(I2C_MODE<<TWEA)|(0<<TWSTA)|(1<<TWSTO)|(1<<TWEN)|(0<<TWIE);
|
||||
break;
|
||||
#endif
|
||||
|
||||
#endif /* I2C_READ_SUPPORT */
|
||||
|
||||
#ifdef I2C_SLAVE_MODE
|
||||
|
||||
|
|
|
|||
13
i2c.h
13
i2c.h
|
|
@ -22,6 +22,19 @@
|
|||
*/
|
||||
//#define I2C_SLAVE_MODE
|
||||
|
||||
/** \def I2C_READ_SUPPORT
|
||||
|
||||
Currently, reading from the I2C bus is implemented only partially. The
|
||||
already existing parts are wrapped with this #define.
|
||||
|
||||
If reading from I2C is needed, at least a read buffer has to be added. This
|
||||
buffer used to be 'i2c_buffer[]', a pointer 'i2c_index' into this buffer and
|
||||
a variable 'i2c_byte_count' to track on how many bytes should be read.
|
||||
Further requirements are adjustments to the wrapped code to use this buffer
|
||||
and a function to make the read data available to calling code.
|
||||
*/
|
||||
//#define I2C_READ_SUPPORT
|
||||
|
||||
/** \def I2C_EEPROM_SUPPORT
|
||||
|
||||
It's currently unclear what this enables exactly, apparently something to
|
||||
|
|
|
|||
Loading…
Reference in New Issue