función I2C para PIC

0

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();
    }
}
    
pregunta Rookie91

1 respuesta

1

En realidad, al inicializar el controlador I2C no aparecerá ninguna señal ni reloj en el bus hasta que inicie una transacción.

    
respondido por el martinm

Lea otras preguntas en las etiquetas