diff --git a/i2c.c b/i2c.c index 6d54baf..5aada81 100644 --- a/i2c.c +++ b/i2c.c @@ -16,7 +16,15 @@ #endif uint8_t I2C_ErrorCode; - +/********************************************** + Public Function: i2c_init + + Purpose: Initialise TWI/I2C interface + + Input Parameter: none + + Return Value: none + **********************************************/ void i2c_init(void){ // set clock switch (PSC_I2C) { @@ -37,6 +45,16 @@ void i2c_init(void){ // enable TWCR = (1 << TWEN); } +/********************************************** + Public Function: i2c_start + + Purpose: Start TWI/I2C interface + + Input Parameter: + - uint8_t i2c_addr: Adress of reciever + + Return Value: none + **********************************************/ void i2c_start(uint8_t i2c_addr){ // i2c start TWCR = (1 << TWINT)|(1 << TWSTA)|(1 << TWEN); @@ -62,10 +80,29 @@ void i2c_start(uint8_t i2c_addr){ } }; } +/********************************************** + Public Function: i2c_stop + + Purpose: Stop TWI/I2C interface + + Input Parameter: none + + Return Value: none + **********************************************/ void i2c_stop(void){ // i2c stop TWCR = (1 << TWINT)|(1 << TWSTO)|(1 << TWEN); } +/********************************************** + Public Function: i2c_byte + + Purpose: Send byte at TWI/I2C interface + + Input Parameter: + - uint8_t byte: Byte to send to reciever + + Return Value: none + **********************************************/ void i2c_byte(uint8_t byte){ TWDR = byte; TWCR = (1 << TWINT)|( 1 << TWEN); @@ -79,6 +116,17 @@ void i2c_byte(uint8_t byte){ } }; } +/********************************************** + Public Function: i2c_readAck + + Purpose: read acknowledge from TWI/I2C Interface + + Input Parameter: none + + Return Value: uint8_t + - TWDR: recieved value at TWI/I2C-Interface, 0 at timeout + - 0: Error at read + **********************************************/ uint8_t i2c_readAck(void){ TWCR = (1<