Пример #1
0
static int timeout_status_poll(i2c_t *obj, uint32_t mask) {
    uint32_t i, timeout = 100000;

    for (i = 0; i < timeout; i++) {
        if (HW_I2C_S_RD(obj->instance) & mask)
            return 0;
    }
    return 1;
}
Пример #2
0
int i2c_slave_receive(i2c_t *obj) {
    switch(HW_I2C_S_RD(obj->instance)) {
        // read addressed
        case 0xE6:
            return 1;
        // write addressed
        case 0xE2:
            return 3;
        default:
            return 0;
    }
}
Пример #3
0
int i2c_slave_receive(i2c_t *obj) {
    uint32_t i2c_addrs[] = I2C_BASE_ADDRS;
    switch(HW_I2C_S_RD(i2c_addrs[obj->instance])) {
        // read addressed
        case 0xE6:
            return 1;
        // write addressed
        case 0xE2:
            return 3;
        default:
            return 0;
    }
}