TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: jfh900 en 28 de Mayo de 2006, 18:58:47

Título: Dirección i2c esclavo
Publicado por: jfh900 en 28 de Mayo de 2006, 18:58:47
Como se cambia en CCS la dirección del esclavo por programa?, solo se que se pude indicar con el #USE i2c, pero existe alguna instrucción que permita cambiar esta dirección dentro del programa principal (main), tambien me sirve una solución en asm.

Un saludo.
Título: Re: Dirección i2c esclavo
Publicado por: jfh900 en 28 de Mayo de 2006, 19:32:51
Me contesto yo solo  :lol:. Buscando he localizado la forma de hacerlo:

Esto son los trozos de programa para definir la dirección de un esclavo guardada en la EEPROM:

Código: CSS
  1. #define ADDRESS_EEPROM_SLAVE      0x2100 // Comienzo de la EEPROM de DATOS
  2. #define ADDRESS_SLAVE_DEFAULT     0xA0    // Dirección por defecto del Esclavo
  3.  
  4. #rom ADDRESS_EEPROM_SLAVE={ADDRESS_SLAVE_DEFAULT} // Guardamos la dirección por defecto (0xA0) en la primera dirección de la EEPROM

Con esto hemos guardado en la EEPROM, 1ª posición la dirección que tendra pro defecto el esclavo.

Definimos el registro donde se guarda la dirección del esclavo i2c:

Código: CSS
  1. unsigned char SSPADD;
  2. #locate SSPADD=0x93

Y finalmente cuando comenzamos el programa ponemos la dirección que tenemos en la memoria:

Código: CSS
  1. SSPADD = read_eeprom(ADDRESS_EEPROM_SLAVE);

Un saludo a todos.