HPM SDK
HPMicro Software Development Kit
hpm_dac_drv.h File Reference
#include "hpm_common.h"
#include "hpm_dac_regs.h"
#include "hpm_soc_feature.h"

Go to the source code of this file.

Data Structures

struct  dac_config_t
 DAC configuration structure. More...
 
struct  dac_step_config_t
 DAC step configuration structure. More...
 
struct  dac_buffer_t
 DAC buffer structure. More...
 
struct  dac_buffer_config_t
 DAC buffer configuration structure. More...
 
struct  dac_buffer_data_t
 DAC buffer data structure. More...
 

Macros

#define DAC_OUTPUT(PERCENT)   (PERCENT / 10000.0f * DAC_SOC_MAX_DATA)
 The range of DAC output value setting is from 0.0 to 10000.0, which is mapped to 0 to 100 in percentage. More...
 
#define DAC_AHB_ERROR_EVENT   DAC_IRQ_EN_AHB_ERROR_MASK
 DAC AHB error event. More...
 
#define DAC_FIFO_EMPTY_EVENT   DAC_IRQ_EN_FIFO_EMPTY_MASK
 DAC FIFO empty event. More...
 
#define DAC_BUF1_COMPLETE_EVENT   DAC_IRQ_EN_BUF1_CMPT_MASK
 DAC buffer 1 complete event. More...
 
#define DAC_BUF0_COMPLETE_EVENT   DAC_IRQ_EN_BUF0_CMPT_MASK
 DAC buffer 0 complete event. More...
 

Enumerations

enum  dac_mode_t { dac_mode_direct = 0 , dac_mode_step , dac_mode_buffer , dac_mode_trig }
 DAC operation mode. More...
 
enum  dac_ana_div_t { dac_ana_div_2 = 0 , dac_ana_div_4 , dac_ana_div_6 , dac_ana_div_8 }
 DAC analog divider. More...
 
enum  dac_step_direction_t { dac_step_up = 0 , dac_step_down }
 DAC step direction. More...
 
enum  dac_round_mode_t { dac_round_mode_oneshot = 0 , dac_round_mode_loop }
 DAC round mode. More...
 
enum  dac_data_structure_t { dac_data_stru_2_point = 0 , dac_data_stru_1_point }
 DAC data structure type. More...
 
enum  dac_burst_type_t { dac_burst_single = 0 , dac_burst_incr4 = 3 , dac_burst_incr8 = 5 }
 DAC burst type. More...
 

Functions

void dac_get_default_config (dac_config_t *config)
 Get default DAC configuration. More...
 
hpm_stat_t dac_init (DAC_Type *ptr, dac_config_t *config)
 Initialize DAC. More...
 
hpm_stat_t dac_set_direct_config (DAC_Type *ptr, uint16_t data)
 Set DAC direct mode configuration. More...
 
hpm_stat_t dac_set_step_config (DAC_Type *ptr, uint8_t step_cfg_idx, dac_step_config_t *config)
 Set DAC step mode configuration. More...
 
hpm_stat_t dac_set_buffer_config (DAC_Type *ptr, dac_buffer_config_t *config)
 Set DAC buffer mode configuration. More...
 
hpm_stat_t dac_set_output_frequency (DAC_Type *ptr, uint32_t dac_input_freq, uint32_t dac_output_freq)
 Set DAC output frequency. More...
 
hpm_stat_t dac_set_step_sw_trigger (DAC_Type *ptr, uint8_t step_sw_trig_idx)
 Set DAC step software trigger. More...
 
void dac_set_buffer_sw_trigger (DAC_Type *ptr)
 Set DAC buffer software trigger. More...
 
void dac_set_hw_trigger_enable (DAC_Type *ptr, bool enable)
 Enable or disable DAC hardware trigger. More...
 
hpm_stat_t dac_external_dma_request_enable (DAC_Type *ptr, uint8_t buf_idx, bool enable)
 Enable or disable DAC external DMA request. More...
 
void dac_set_buffer_dma_reset (DAC_Type *ptr)
 Reset DAC buffer DMA. More...
 
void dac_enable_conversion (DAC_Type *ptr, bool enable)
 Enable or disable DAC conversion. More...
 
void dac_enable_interrupts (DAC_Type *ptr, uint32_t mask)
 Enable DAC interrupts. More...
 
uint32_t dac_get_status_flags (DAC_Type *ptr)
 Get DAC status flags. More...
 
void dac_set_status_flags (DAC_Type *ptr, uint32_t mask)
 Clear DAC status flags. More...
 
uint8_t dac_get_current_buffer_index (DAC_Type *ptr)
 Get current DAC buffer index. More...
 
uint16_t dac_get_current_buffer_offset (DAC_Type *ptr)
 Get current DAC buffer offset. More...