#define I2C_DisableAck()       IICC1 |= IICC1_TXAK_MASK
#define I2C_EnableAck()        IICC1 &= ~IICC1_TXAK_MASK
#define I2C_RepeatedStart()    IICC1 |= IICC1_RSTA_MASK
#define I2C_EnterRxMode()      IICC1 &= ~IICC1_TX_MASK
#define I2C_write_byte(data)   IICD = data

#define I2C_Start()            IICC1 |= IICC1_TX_MASK;\
                               IICC1 |= IICC1_MST_MASK

#define I2C_Stop()             IICC1 &= ~IICC1_MST_MASK;\
                               IICC1 &= ~IICC1_TX_MASK

#define I2C_Wait()             while((IICS & IICS_IICIF_MASK)==0) {} \
                               IICS |= IICS_IICIF_MASK;

void I2C_WriteRegister(unsigned char u8SlaveAddress, unsigned char u8RegisterAddress, /*unsigned*/ char u8Data);
unsigned char I2C_ReadRegister(unsigned char u8SlaveAddress, unsigned char u8RegisterAddress);
void I2C_ReadMultiRegisters(unsigned char u8SlaveAddress, unsigned char u8RegisterAddress, unsigned char n, unsigned char *r);
void Pause(int number);
