/******************************************************************************
 *****************LIBRERIA PARA MEMORIA ROM EXTERNA I2C************************
 *****************SACADA DE AN1488 MICROCHIP***********************************
 *****************************************************************************/

void Configuration_I2C (void);                   // Configuracion del I2C para PIC16F1947
void eeprom_wr_byte(unsigned int addr, unsigned char data);
unsigned char eeprom_rd_byte(unsigned int addr);
void eeprom_wr_page(unsigned int addr,unsigned char *data, unsigned char length);
void eeprom_rd_page(unsigned int addr, unsigned char *data, unsigned char length);
void eeprom_next_page(unsigned int address);
void i2c_start(void);                           // generates an I2C start condition
void i2c_stop(void);                            // generates an I2C stop condition
void bit_out(unsigned char data);               // outputs a bit to I2C bus
void bit_in(unsigned char *data);               // inputs a bit from the I2C bus
unsigned char i2c_wr(unsigned char i2c_data);   // writes a byte to the I2C bus
unsigned char i2c_rd(unsigned char ack);        // reads a byte from the I2C bus
void ack_poll(unsigned char control);


#define SDA_TRIS  TRISCbits.TRISC4
#define SCL_TRIS  TRISCbits.TRISC3
#define SDA       PORTCbits.RC4
#define SCL       PORTCbits.RC3
#define ACK       0x00
#define NACK      0x80





#define PAGE_SIZE     64                     // EEPROM Page Size
#define EEPROM_WR     0xA0                   // WRITE instruction
#define EEPROM_RD     0xA1                   // READ instruction













