// // I2C.h // // Description: Contains the general I2C access routines' prototypes. // // // Constants #define I2C_WRITE 0 #define I2C_READ 1 #define ACK 1 // Get more than one byte #define NACK 0 // Get only one byte // Function Name: i2c_init() // // Description: Initializes the I2C hardware // // void i2c_init(void); // Function Name: i2c_start() // // Description: Prepare to take over bus. Return 0 if successfull, otherwise 1. // // unsigned char i2c_start(unsigned char data); // Function Name: i2c_rep_start() // // Description: Repeated Start. Switch mode without losing bus. Return 0 if successfull, otherwise 1. // // unsigned char i2c_rep_start(unsigned char data); // Function Name: i2c_stop() // // Description: Release I2C bus. // // void i2c_stop(void); // Function Name: i2c_write() // // Description: Write byte to currently addressed slave // // unsigned char i2c_write(unsigned char data); // Function Name: i2c_read() // // Description: Read byte from currently addressed slave. ack parameter determines if we should slave ack or not. // // unsigned char i2c_read(unsigned char ack); // Function Name: i2c_readbyte() // // Description: Read a single byte from device 'i2c_address' at address 'location'. // // unsigned char i2c_readbyte(unsigned char i2c_address, unsigned char location); // Function Name: i2c_writebyte() // // Description: Write single byte 'data' to device 'i2c_address' at address 'location'. Returns results of operation. // // unsigned char i2c_writebyte(unsigned char i2c_address, unsigned char location, unsigned char data); // Function Name: i2c_readword() // // Description: Read a single word from device 'i2c_address' at address 'location'. // // unsigned int i2c_readword(unsigned char i2c_address, unsigned char location); // Function Name: i2c_writeword() // // Description: Write single word 'data' to device 'i2c_address' at address 'location'. Returns results of operation. // // unsigned char i2c_writeword(unsigned char i2c_address, unsigned char location, unsigned int data);