mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-04 06:11:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * 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
 | 
						|
 */
 | 
						|
esp_err_t dac_oneshot_new_channel(const dac_oneshot_config_t *oneshot_cfg, dac_oneshot_handle_t *ret_handle);
 | 
						|
 | 
						|
/**
 | 
						|
 * @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
 | 
						|
 */
 | 
						|
esp_err_t dac_oneshot_del_channel(dac_oneshot_handle_t handle);
 | 
						|
 | 
						|
/**
 | 
						|
 * @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
 |