Hola amigos!
¿Alguien puede decirme si el "driver" incluido en CCS (24256.C) cuyo codigo incluyo mas abajo funciona en PICs que no tienen i2c implementado por hardware?
Gracias!
Ariel, toda la diferencia entre hacerlo por hardware o por software está en esta línea:
#use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL)
Para que funcione correctamente por Hardware tienes que asegurarte de una cosa y añadir un parámetro más a la declaración:
1º.- Asegurarte de que EEPROM_SDA y EEPROM_SCL corresponden efectivamente a los pines del PIC que tienen la función I
2C implementada.
2º.- Añadir el FORCE_HW a la declaración del i
2C. CCS por defecto nunca fuerza la realización por Hardware, hay que declararlo explícitamente.
#use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL, FORCE_HW)
Nota: a diferencia del #use i2c que en CCS siempre es por software salvo que se declare FORCE_HW el #use rs232 es por software sólo si xmit y rcv no coinciden con los pines asociados a la USART, es decir que detecta y utiliza el hardware automáticamente.