allow array to be used in dac_controlset - release

This commit is contained in:
Philippe G
2021-11-17 10:24:01 -08:00
parent c236044228
commit 08b22504bc
3 changed files with 54 additions and 18 deletions

View File

@@ -150,8 +150,7 @@ uint16_t adac_read_word(int i2c_addr, uint8_t reg) {
/****************************************************************************************
*
*/
esp_err_t adac_write_word(int i2c_addr, uint8_t reg, uint16_t val)
{
esp_err_t adac_write_word(int i2c_addr, uint8_t reg, uint16_t val) {
uint8_t data[] = { i2c_addr << 1, reg,
val >> 8, val & 0xff };
@@ -169,4 +168,25 @@ esp_err_t adac_write_word(int i2c_addr, uint8_t reg, uint16_t val)
}
return ret;
}
}
/****************************************************************************************
*
*/
esp_err_t adac_write(int i2c_addr, uint8_t reg, uint8_t *data, size_t count) {
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
i2c_master_start(cmd);
i2c_master_write_byte(cmd, (i2c_addr << 1) | I2C_MASTER_WRITE, I2C_MASTER_NACK);
i2c_master_write_byte(cmd, reg, I2C_MASTER_NACK);
i2c_master_write(cmd, data, count, I2C_MASTER_NACK);
i2c_master_stop(cmd);
esp_err_t ret = i2c_master_cmd_begin(i2c_port, cmd, 200 / portTICK_RATE_MS);
i2c_cmd_link_delete(cmd);
if (ret != ESP_OK) {
ESP_LOGW(TAG, "I2C write failed");
}
}