diff --git a/src/omv/cambus.c b/src/omv/cambus.c index de4cce573..04b7f5645 100644 --- a/src/omv/cambus.c +++ b/src/omv/cambus.c @@ -80,24 +80,24 @@ int cambus_writeb(uint8_t slv_addr, uint8_t reg_addr, uint8_t reg_data) return ret; } -int cambus_readw(uint8_t slv_addr, uint8_t reg_addr, uint16_t *reg_data) +int cambus_read(uint8_t slv_addr, uint8_t reg_addr, uint8_t *reg_data, uint8_t reg_size) { int ret=0; __disable_irq(); - if (HAL_I2C_Mem_Read(&I2CHandle, slv_addr, reg_addr, - I2C_MEMADD_SIZE_8BIT, (uint8_t*) reg_data, 2, I2C_TIMEOUT) != HAL_OK) { + if (HAL_I2C_Mem_Read(&I2CHandle, slv_addr | 1, reg_addr, + reg_size, reg_data, reg_size, I2C_TIMEOUT) != HAL_OK) { ret = -1; } __enable_irq(); return ret; } -int cambus_writew(uint8_t slv_addr, uint8_t reg_addr, uint16_t reg_data) +int cambus_write(uint8_t slv_addr, uint8_t reg_addr, uint8_t *reg_data, uint8_t reg_size) { int ret=0; __disable_irq(); - if (HAL_I2C_Mem_Write(&I2CHandle, slv_addr, reg_addr, - I2C_MEMADD_SIZE_8BIT, (uint8_t*) ®_data, 2, I2C_TIMEOUT) != HAL_OK) { + if (HAL_I2C_Mem_Write(&I2CHandle, slv_addr | 0, reg_addr, + reg_size, reg_data, reg_size, I2C_TIMEOUT) != HAL_OK) { ret = -1; } __enable_irq(); diff --git a/src/omv/cambus.h b/src/omv/cambus.h index 17f6a471e..987d67ffd 100644 --- a/src/omv/cambus.h +++ b/src/omv/cambus.h @@ -13,6 +13,6 @@ int cambus_init(); int cambus_scan(); int cambus_readb(uint8_t slv_addr, uint8_t reg_addr, uint8_t *reg_data); int cambus_writeb(uint8_t slv_addr, uint8_t reg_addr, uint8_t reg_data); -int cambus_readw(uint8_t slv_addr, uint8_t reg_addr, uint16_t *reg_data); -int cambus_writew(uint8_t slv_addr, uint8_t reg_addr, uint16_t reg_data); +int cambus_read(uint8_t slv_addr, uint8_t reg_addr, uint8_t *reg_data, uint8_t reg_size); +int cambus_write(uint8_t slv_addr, uint8_t reg_addr, uint8_t *reg_data, uint8_t reg_size); #endif // __CAMBUS_H__