2022-10-10 07:17:22 -04:00
|
|
|
/*
|
|
|
|
* SPDX-FileCopyrightText: 2019-2022 Espressif Systems (Shanghai) CO LTD
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "driver/dac_types.h"
|
|
|
|
#include "esp_err.h"
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if SOC_DAC_SUPPORTED
|
|
|
|
|
|
|
|
typedef struct dac_oneshot_s *dac_oneshot_handle_t; /*!< DAC oneshot channel handle */
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief DAC oneshot channel configuration
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
typedef struct {
|
|
|
|
dac_channel_t chan_id; /*!< DAC channel id */
|
|
|
|
} dac_oneshot_config_t;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Allocate a new DAC oneshot channel
|
|
|
|
* @note The channel will be enabled as well when the channel allocated
|
|
|
|
*
|
|
|
|
* @param[in] oneshot_cfg The configuration for the oneshot channel
|
|
|
|
* @param[out] ret_handle The returned oneshot channel handle
|
|
|
|
* @return
|
|
|
|
* - ESP_ERR_INVALID_ARG The input parameter is invalid
|
|
|
|
* - ESP_ERR_INVALID_STATE The DAC channel has been registered already
|
|
|
|
* - ESP_ERR_NO_MEM No memory for the DAC oneshot channel resources
|
|
|
|
* - ESP_OK Allocate the new DAC oneshot channel success
|
|
|
|
*/
|
2022-11-03 00:13:58 -04:00
|
|
|
esp_err_t dac_oneshot_new_channel(const dac_oneshot_config_t *oneshot_cfg, dac_oneshot_handle_t *ret_handle);
|
2022-10-10 07:17:22 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Delete the DAC oneshot channel
|
|
|
|
* @note The channel will be disabled as well when the channel deleted
|
|
|
|
*
|
|
|
|
* @param[in] handle The DAC oneshot channel handle
|
|
|
|
* @return
|
|
|
|
* - ESP_ERR_INVALID_ARG The input parameter is invalid
|
|
|
|
* - ESP_ERR_INVALID_STATE The channel has already been de-registered
|
|
|
|
* - ESP_OK Delete the oneshot channel success
|
|
|
|
*/
|
2022-11-03 00:13:58 -04:00
|
|
|
esp_err_t dac_oneshot_del_channel(dac_oneshot_handle_t handle);
|
2022-10-10 07:17:22 -04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Output the voltage
|
|
|
|
* @note Generally it'll take 7~11 us on ESP32 and 10~21 us on ESP32-S2
|
|
|
|
*
|
|
|
|
* @param[in] handle The DAC oneshot channel handle
|
|
|
|
* @param[in] digi_value The digital value that need to be converted
|
|
|
|
* @return
|
|
|
|
* - ESP_ERR_INVALID_ARG The input parameter is invalid
|
|
|
|
* - ESP_OK Convert the digital value success
|
|
|
|
*/
|
|
|
|
esp_err_t dac_oneshot_output_voltage(dac_oneshot_handle_t handle, uint8_t digi_value);
|
|
|
|
|
|
|
|
#endif // SOC_DAC_SUPPORTED
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|