Rutinas Lectura Escritura i2c en C

Embed Size (px)

DESCRIPTION

asm

Citation preview

#use i2c (Master,sda=PIN_C4, scl=PIN_C3) //configuracion de i2cfuncion escritura en eepromvoid write_ext_eeprom (long int address,BYTE data){ short in status;i2c_start (); //Iniciaiza la transmisini2c_write (0xA0); //Escribe la palabra de control (direccin0h + 0 escritura)i2c_write (address>>8); //Parte alta de la direccin a escribir en la eepromi2c_write (address); //Parte bJa de la direccin a escribir en la eepromi2c_write (data); //dato a escribiri2c_stop(); //finalizacion de la transmisini2c_start(); //Reiniciosatus=i2c_write (0xa0); //Lectura del bit ACK para evitar lecturas erroneas while (status==1) //sies 1 espara a que responda el esclavo) { i2c_start(); satus=i2c_write (0xa0); }}//////////////////////////////////////////////////BYTE read_ext_eeprom(long int address) { BYTE data; i2c_start(); //inicia la transmision i2c_write (0xA0); //Escribe la palabra de control (direccin0h + 0 escritura) i2c_write (address>>8); //Parte alta de la direccin a escribir en la eeprom i2c_write (address); //Parte bJa de la direccin a escribir en la eeprom i2c_start(); //Reinicio i2c_write (0xA1); //Escribe la palabra de control (direccin0h + 1 lectura) data=i2c_read(0); //lectura de dato i2c_stop(); //finalizacion de la transmisin return(data);}