/*************************************************************
I2C.h

This header file is for I2C routines.

Written for HI_TECH compiler vX.XX
**************************************************************/
#include	<pic.h>

#define WrtCmd  0
#define RdCmd   1

#define   SLAVE_7   6     // I2C Slave mode, 7-bit address      
#define   SLAVE_10  7     // I2C Slave mode, 10-bit address     
#define   MASTER    0x0A  // I2C Master mode                    

// SSPSTAT REGISTER
#define   SLEW_OFF  0xC0  // Slew rate disabled for 100kHz mode
#define   SLEW_ON   0x00  // Slew rate enabled for 400kHz mode

//Define I2C pins and function
#define		SCL_L			TRISB4 = 0	//Makes output to drive LOW
#define		SCL_H			TRISB4 = 1	//Makes input to pull-up HIGH
#define		SDA_L			TRISB1 = 0	//Makes output to drive LOW
#define		SDA_H			TRISB1 = 1	//Makes input to pull-up HIGH
#define		ACK				TRISB1 = 0	//Makes output to drive LOW
#define		NACK 			TRISB4 = 1	//Makes input to pull-up HIGH
#define		SCL_LEVEL	RB4					//Use for reading pin
#define		SDA_LEVEL	RB1					//Use for reading pin

extern void OpenI2C(unsigned char sync_mode, unsigned char slew);
extern void I2CStart(void);
extern void I2CReStart(void);
extern void I2CStop(void);
extern unsigned char WaitForACK(void);
extern void ACKI2C(void);
extern unsigned char WriteI2C(unsigned char data_out);
extern unsigned char ReadI2C(void);
extern void nACK(void);
extern unsigned char I2CDataReady(void);
