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); } }
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; }
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); }