diff --git a/ESP-IDF_NovaGlide/subsystems/sensors/ultrasonic_sensor.c b/ESP-IDF_NovaGlide/subsystems/sensors/ultrasonic_sensor.c index e01e1e9cc7..3b155e05e0 100644 --- a/ESP-IDF_NovaGlide/subsystems/sensors/ultrasonic_sensor.c +++ b/ESP-IDF_NovaGlide/subsystems/sensors/ultrasonic_sensor.c @@ -42,22 +42,13 @@ static void ultrasonic_update_impl(ultrasonic_system_t *self, TickType_t now) { ESP_LOGI(TAG, "Ultrasonic sensor initialized"); }*/ -void ultrasonic_system_init(ultrasonic_system_t *sys) -{ - sys->distance_cm = 0.0f; - sys->update = ultrasonic_update_impl; +void ultrasonic_system_init(ultrasonic_system_t *sys, i2c_master_bus_handle_t bus_handle) { + sys->distance_cm = 0.0f; + sys->update = ultrasonic_update_impl; + i2c_device_config_t dev_cfg = { + .device_address = ULTRASONIC_I2C_ADDR, + .scl_speed_hz = ULTRASONIC_I2C_SPEED_HZ, }; - i2c_config_t conf = { - .mode = I2C_MODE_MASTER, - .sda_io_num = I2C_SDA_PIN, - .scl_io_num = I2C_SCL_PIN, - .sda_pullup_en = GPIO_PULLUP_ENABLE, - .scl_pullup_en = GPIO_PULLUP_ENABLE, - .master.clk_speed = I2C_FREQ_HZ, - }; - - ESP_ERROR_CHECK(i2c_param_config(I2C_PORT, &conf)); - ESP_ERROR_CHECK(i2c_driver_install(I2C_PORT, conf.mode, 0, 0, 0)); - - ESP_LOGI(TAG, "HC-SR04 (I2C mode) initialized"); + ESP_ERROR_CHECK(i2c_master_bus_add_device(bus_handle, &dev_cfg, &sys->dev)); + ESP_LOGI(TAG, "HC-SR04 (I2C mode) registered at 0x%02X", ULTRASONIC_I2C_ADDR); }