Hola a todos, espero estén bien:
Estoy usando la comunicación i2c con el compilador C18 de microchip, en esta oportunidad estoy haciendo uso de la librería sw_i2c.h, es decir, por software, ya que requiero el puerto c de mi PIC (18f252) para otras cosas. La cuestión es la siguiente:
* Ya uso efectivamente las funciones (trasnmisión, recepción, etc) cuando la libreria está configurada por defecto, más precisamente usando los pines SDA (RC4) y SCL (RC3).
* He leido el pdf de las librerías del compilador C18 en donde se indica que a través del simple uso de unas macros al interior de la librería sw_i2c.h, puedo cambiar los pines de transmisión (Datos, SDA) y el de sincronización (reloj, SCL). En efecto hago lo que me dicen; aquí muestro una porción de los cambios para usar los pines en el puerto A (obviamente he deshabilitado el ADC del PIC para estos pines):
#define DATA_LOW TRISAbits.TRISA4 = 0; // define macro for data pin output
#define DATA_HI TRISAbits.TRISA4 = 1; // define macro for data pin input
#define DATA_LAT LATAbits.LATA4 // define macro for data pin latch
#define DATA_PIN PORTAbits.RA4 // define macro for data pin
#define CLOCK_LOW TRISAbits.TRISA3 = 0; // define macro for clock pin output
#define CLOCK_HI TRISAbits.TRISA3 = 1; // define macro for clock pin input
#define SCLK_LAT LATAbits.LATA3 // define macro for clock pin latch
#define SCLK_PIN PORTAbits.RA3 // define macro for clock pin
Mi problema es sencillo de definir.... !no me funciona!, jeje, siendo más específico guardo las modificaciones de la librería y la incluyo en el proyecto del MPLAB (eso dicen que debe hacerce en el pdf); sin embargo probando en el proteus veo que no se transmite dato alguno por estos pines, en contraste, coloco el I2C debugger (Proteus) en los pines por defecto (RC4, RC3) y !transmite!, lo que me indica que el compilador o lo que sea no me hizo efectivos los cambios de la librería.
No se como hacer que el compilador me haga efectivos estos cambios, probablemente mi traducción del pdf es incorrecta o algo así, o no entiendo bien lo que me quieren decir.
Si alguien sabe como hacer que el I2C funcione con otros pines, o simplemente como hacer que el compilador me tome los cambios en la librería lo agradeceré mucho..... A continuación pongo el fragmento de texto del pdf donde dice como hacer los cambios efectivos (si es por mi problema de traducción, jejeje):
"After these definitions have been made, the user must recompile the I2C routines and
then use the updated files in the project. This can be accomplished by adding the library
source files into the project or by recompiling the library files using the provided batch
files". MPLAB® C18 C COMPILER LIBRARIES pag: 108
De antemano muchas gracias..
Saludos
Andros!