コード例 #1
0
extern "C" void apds9960_obj_test()
{
    CI2CBus i2c_bus(APDS9960_I2C_MASTER_NUM, APDS9960_I2C_MASTER_SCL_IO, APDS9960_I2C_MASTER_SDA_IO);
    CApds9960 apds(&i2c_bus);
    // Initialize interrupt service routine
    periph_gpio_init();
    // Initialize APDS-9960 (configure I2C and initial values)
    if (apds.gesture_init()) {
        printf("Device initialized!\n");
    } else {
        printf("Device false!\n");
    }

    int cnt = 0;
    while (cnt < 5) {
        uint8_t gesture = apds.read_gesture();
        if (gesture == APDS9960_DOWN) {
            printf("APDS9960_DOWN*******************************\n");
        }
        if (gesture == APDS9960_UP) {
            printf("APDS9960_UP********************************\n");
        }
        if (gesture == APDS9960_LEFT) {
            printf("APDS9960_LEFT**********************\n");
            cnt++;
        }
        if (gesture == APDS9960_RIGHT) {
            printf("APDS9960_RIGHT***************************\n");
            cnt++;
        }
        vTaskDelay(100 / portTICK_RATE_MS);
    }
}
コード例 #2
0
ファイル: platform-bus.cpp プロジェクト: saltstar/smartnix
zx_status_t PlatformBus::I2cInit(const i2c_impl_protocol_t* i2c) {
    if (!i2c_buses_.is_empty()) {
        // already initialized
        return ZX_ERR_BAD_STATE;
    }

    uint32_t bus_count = i2c_impl_get_bus_count(i2c);
    if (!bus_count) {
        return ZX_ERR_NOT_SUPPORTED;
    }

    fbl::AllocChecker ac;
    i2c_buses_.reserve(bus_count, &ac);
    if (!ac.check()) {
        return ZX_ERR_NO_MEMORY;
    }

    for (uint32_t i = 0; i < bus_count; i++) {
        fbl::unique_ptr<PlatformI2cBus> i2c_bus(new (&ac) PlatformI2cBus(i2c, i));
        if (!ac.check()) {
            return ZX_ERR_NO_MEMORY;
        }

        auto status = i2c_bus->Start();
        if (status != ZX_OK) {
            return status;
        }

        i2c_buses_.push_back(std::move(i2c_bus));
    }

    return ZX_OK;
}
コード例 #3
0
extern "C" void bme280_obj_test()
{
    int cnt = 100;
    CI2CBus i2c_bus(I2C_MASTER_NUM, I2C_MASTER_SCL_IO, I2C_MASTER_SDA_IO);
    CBme280 bme280(&i2c_bus);
    bme280.init();

    while (cnt--) {
        ESP_LOGI("BME280:", "temperature:%f\n", bme280.temperature());
        vTaskDelay(300 / portTICK_RATE_MS);
        ESP_LOGI("BME280:", "humidity:%f\n", bme280.humidity());
        vTaskDelay(300 / portTICK_RATE_MS);
    }
    printf("heap: %d\n", esp_get_free_heap_size());
    vTaskDelete(NULL);
}