NetBurner 3.0
I2C Status Macros

Macros

#define I2C_SR_BUSY   (((0x20 & I2C_SR) == 0x20))
 Is I2C bus busy (bit 5 of I2SR)
 
#define I2C_CR_SLAVE   (((0x20 & I2C_CR) == 0x00))
 Is I2C bus set as slave (bit 5 of I2CR)
 
#define I2C_SR_ARB_LOST   (((0x10 & I2C_SR) == 0x10))
 Was I2C bus Arbitration Lost (bit 4 of I2SR)
 
#define I2C_SR_ADRES_AS_SLAVE   (((0x40 & I2C_SR) == 0x40))
 Was Device addressed as a slave(bit 6 of I2SR)
 
#define I2C_SR_SLAVE_TX   (((0x04 & I2C_SR) == 0x04))
 Was Device addressed as a slave for TX (bit 2 of I2SR)
 
#define I2C_CR_TX   (((0x10 & I2C_CR) == 0x10))
 Are we configured for TX (bit 4 of I2CR)
 
#define I2C_SR_RX_ACK   (((0x01 & I2C_SR) == 0x00))
 Did we receive an RX ACK after last transmit (bit 0 of I2SR)
 
#define I2C_CR_RX_ACK   (((0x08 & I2C_CR) == 0x00))
 Are we set to RX ACK.
 
#define I2C_SET_NO_ACK   ((I2C_CR |= 0x08))
 Configure I2C not to send a RX ACK (bit 3 of I2CR)
 
#define I2C_SET_ACK   ((I2C_CR &= 0xF7))
 Configure I2C to send a RX ACK (bit 3 of I2CR)
 
#define I2C_SET_TX   ((I2C_CR |= 0x10))
 Configure I2C to be in TX mode (bit 4 of I2CR)
 
#define I2C_SET_RX   ((I2C_CR &= 0xEF))
 Configure I2C to be in RX mode (bit 4 of I2CR)
 
#define I2C_SET_REPEAT_START   ((I2C_CR |= 0x04))
 Configure I2C to send a repeated start signal.
 
#define I2C_CLR_ARB_LOST   ((I2C_SR &= 0xEF))
 Clear Arbitration lost error condition.
 

Detailed Description