diff --git a/src/omv/cambus.c b/src/omv/cambus.c index f3cd957eb..a29085c31 100644 --- a/src/omv/cambus.c +++ b/src/omv/cambus.c @@ -65,6 +65,14 @@ int cambus_scan(I2C_HandleTypeDef *i2c) return 0; } +int cambus_gencall(I2C_HandleTypeDef *i2c, uint8_t cmd) +{ + if (HAL_I2C_Master_Transmit(i2c, 0x00, &cmd, 1, I2C_TIMEOUT) != HAL_OK) { + return -1; + } + return 0; +} + int cambus_readb(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint8_t reg_addr, uint8_t *reg_data) { int ret = 0; diff --git a/src/omv/cambus.h b/src/omv/cambus.h index 5504083bf..f9cabf63d 100644 --- a/src/omv/cambus.h +++ b/src/omv/cambus.h @@ -33,6 +33,7 @@ int cambus_init(I2C_HandleTypeDef *i2c, I2C_TypeDef *instance, uint32_t timing); int cambus_deinit(I2C_HandleTypeDef *i2c); int cambus_scan(I2C_HandleTypeDef *i2c); +int cambus_gencall(I2C_HandleTypeDef *i2c, uint8_t cmd); int cambus_readb(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint8_t reg_addr, uint8_t *reg_data); int cambus_writeb(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint8_t reg_addr, uint8_t reg_data); int cambus_readb2(I2C_HandleTypeDef *i2c, uint8_t slv_addr, uint16_t reg_addr, uint8_t *reg_data);