Envolví una función para la inicialización de I2C en PIC18F26J50 y parece ser algo así :
void i2c_init()
{
//Initialize pins as input for I2c
SSPSTAT=0x80;
SSPADD=0x18; //100khz baud rate
SSPCON1=0x28; // Master mode in I2c.
SSPCON2=0x00;
TRISBbits.TRISB4=1;
TRISBbits.TRISB5=1;
}
Pero cuando grabo el código en el PIC en simulación, no funciona correctamente. ¿Hay algo malo con esta función? Se supone que muestra un reloj que funciona a 100kHz.
Este es el nuevo código:
void main(void)
{
OpenI2C(MASTER, SLEW_ON); // Initialize I2C module
SSPADD = 9; //400kHz Baud clock(9) @16MHz
//100kHz Baud clock(39) @16MHz
i2c_init();
while(1)
{
StartI2C();
}
}