Exemple #1
0
Fichier : i2c.c Projet : JMR-b/RIOT
bool i2c_initialize(uint8_t i2c_interface, uint32_t i2c_mode,
                    uint8_t slave_addr, uint32_t baud_rate, void *handler)
{
    //puts("i2c_initialize begin...\n");
    printf("i2cInterface = %d\n", i2c_interface);
    i2c_clear_buffer((uint8_t *) i2c_master_buffer,
                     I2C_BUFSIZE * sizeof(uint8_t));

    //activate power for I2C2
    i2c_active_power(i2c_interface);

    //select I2C2 functionality for pins x.xx (SDAx) and x.xx (SCLx)
    i2c_pin_select(i2c_interface);

    // clear I2CCON register flags
    i2c_clear_control_register(i2c_interface);

    //set baud rate
    i2c_set_baud_rate(i2c_interface, baud_rate);

    //set slave mode
    if (i2c_mode == I2CSLAVE) {
        i2c_set_slave_mode(i2c_interface, slave_addr);
    }

    /* Install interrupt handler */
    if (!i2c_irq_handler_register(i2c_interface, handler)) {
        return false;
    }

    i2c_initial_master_transmitter_mode(i2c_interface);

    //puts("...i2c_initialize ended\n");
    return (true);
}
void i2c_stop(I2C_MemMapPtr p)
{
    i2c_set_slave_mode(p);
    i2c_set_rx_mode(p);
}