#ifndef I2C_COMMUNICATION #define I2C_COMMUNICATION #include "Std_Types.h" //defines #define WRITE 0x00 //SMBus Write command #define READ 0x01 //SMBus Read command #define RTC_ADD 0xE0 //Slave Address(DS1307) //SMBus states---------------------------------------------- //MT = Master Transmitter //MR = Master Reciever #define BUS_ERROR 0x00 //(all modes), illegal Start or Stop condition #define IDLE 0xF8 //SMBus does nothing #define START 0x08 //(MT & MR), Start Condition transmitted #define RSTART 0x10 //(MT & MR), Repeated Start condition transmitted. #define T_ADDACK 0x18 //(MT), Slave Address and Write transmitted, ACK recieved #define T_ADDNACK 0x20 //(MT), Slave Address and Write transmitted, NACK recieved #define T_DACK 0x28 //(MT), Data-byte sent, ACK recieved #define T_DNACK 0x30 //(MT), Data-byte sent, NACK recieved #define R_ADDACK 0x40 //(MR), Slave Address and Read transmitted, ACK recieved #define R_ADDNACK 0x48 //(MR), Slave Address and Read transmitted, NACK recieved #define R_DACK 0x50 //(MR), Data-byte recieved, ACK transmitted #define R_DNACK 0x58 //(MR), Data-byte recieved, NACK transmitted //global variables------------------------------------------ uint8 SendData(uint8 ucDeviceAddress, uint8 ucRegisterAddress, uint8 ucNumberOfBytes, uint8 ucStartByte, uint8 ucValuesT[8]); uint8 ReadData(uint8 ucDeviceAddress, uint8 ucNumberOfBytes, uint8 ucStartByte, uint8 ucValuesR[8]); #endif