18#if VSF_HAL_USE_DAC == ENABLED
24#define vsf_real_dac_t VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_t)
25#define vsf_real_dac_capability VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_capability)
26#define vsf_real_dac_get_configuration VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_get_configuration)
28#ifndef VSF_DAC_CFG_REIMPLEMENT_API_CAPABILITY
29# define VSF_DAC_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
32#ifndef VSF_DAC_CFG_REIMPLEMENT_API_GET_CONFIGURATION
33# define VSF_DAC_CFG_REIMPLEMENT_API_GET_CONFIGURATION DISABLED
36#ifdef VSF_DAC_CFG_IMP_REMAP_PREFIX
37# undef VSF_DAC_CFG_REIMPLEMENT_API_CAPABILITY
38# define VSF_DAC_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
39# undef VSF_DAC_CFG_REIMPLEMENT_API_GET_CONFIGURATION
40# define VSF_DAC_CFG_REIMPLEMENT_API_GET_CONFIGURATION ENABLED
43#if VSF_DAC_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
44# ifndef VSF_DAC_CFG_CAPABILITY_IRQ_MASK
45# define VSF_DAC_CFG_CAPABILITY_IRQ_MASK VSF_DAC_IRQ_ALL_BITS_MASK
47# ifndef VSF_DAC_CFG_CAPABILITY_MAX_RESOLUTION_BITS
48# define VSF_DAC_CFG_CAPABILITY_MAX_RESOLUTION_BITS 12
50# ifndef VSF_DAC_CFG_CAPABILITY_MIN_RESOLUTION_BITS
51# define VSF_DAC_CFG_CAPABILITY_MIN_RESOLUTION_BITS 8
53# ifndef VSF_DAC_CFG_CAPABILITY_CHANNEL_COUNT
54# define VSF_DAC_CFG_CAPABILITY_CHANNEL_COUNT 4
61#if VSF_DAC_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
65 .irq_mask = VSF_DAC_CFG_CAPABILITY_IRQ_MASK,
67 .min_resolution_bits = VSF_DAC_CFG_CAPABILITY_MIN_RESOLUTION_BITS,
68 .channel_count = VSF_DAC_CFG_CAPABILITY_CHANNEL_COUNT,
71 return dac_capability;
75#if VSF_DAC_CFG_REIMPLEMENT_API_GET_CONFIGURATION == DISABLED
90#undef VSF_DAC_CFG_REIMPLEMENT_API_CAPABILITY
91#undef VSF_DAC_CFG_REIMPLEMENT_API_GET_CONFIGURATION
92#undef VSF_DAC_CFG_CAPABILITY_IRQ_MASK
93#undef VSF_DAC_CFG_CAPABILITY_MAX_RESOLUTION_BITS
94#undef VSF_DAC_CFG_CAPABILITY_MIN_RESOLUTION_BITS
95#undef VSF_DAC_CFG_CAPABILITY_CHANNEL_COUNT
98#undef vsf_real_dac_capability
99#undef vsf_real_dac_get_configuration
103#ifdef VSF_DAC_CFG_IMP_REMAP_PREFIX
104# define vsf_imp_dac_t VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_t)
105# define vsf_imp_dac_init(__DAC) VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_init)
106# define vsf_imp_dac_fini(__DAC) VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_fini)
107# define vsf_imp_dac_enable(__DAC) VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_enable)
108# define vsf_imp_dac_disable(__DAC) VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_disable)
109# define vsf_imp_dac_status(__DAC) VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_status)
110# define vsf_imp_dac_capability(__DAC) VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_capability)
111# define vsf_imp_dac_irq_enable(__DAC, ...) VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_irq_enable)
112# define vsf_imp_dac_irq_disable(__DAC, ...) VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_irq_disable)
113# define vsf_imp_dac_channel_request_once(__DAC, ...) VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_channel_request_once)
114# define vsf_imp_dac_channel_config(__DAC, ...) VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_channel_config)
115# define vsf_imp_dac_channel_request(__DAC, ...) VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_channel_request)
116# define vsf_imp_dac_get_configuration VSF_MCONNECT(VSF_DAC_CFG_IMP_PREFIX, _dac_get_configuration)
118# define vsf_remap_dac_t VSF_MCONNECT(VSF_DAC_CFG_IMP_REMAP_PREFIX, _dac_t)
119# define vsf_remap_dac_init(__DAC) VSF_MCONNECT(VSF_DAC_CFG_IMP_REMAP_PREFIX, _dac_init)
120# define vsf_remap_dac_fini(__DAC) VSF_MCONNECT(VSF_DAC_CFG_IMP_REMAP_PREFIX, _dac_fini)
121# define vsf_remap_dac_enable(__DAC) VSF_MCONNECT(VSF_DAC_CFG_IMP_REMAP_PREFIX, _dac_enable)
122# define vsf_remap_dac_disable(__DAC) VSF_MCONNECT(VSF_DAC_CFG_IMP_REMAP_PREFIX, _dac_disable)
123# define vsf_remap_dac_status(__DAC) VSF_MCONNECT(VSF_DAC_CFG_IMP_REMAP_PREFIX, _dac_status)
124# define vsf_remap_dac_capability(__DAC) VSF_MCONNECT(VSF_DAC_CFG_IMP_REMAP_PREFIX, _dac_capability)
125# define vsf_remap_dac_irq_enable(__DAC, ...) VSF_MCONNECT(VSF_DAC_CFG_IMP_REMAP_PREFIX, _dac_irq_enable)
126# define vsf_remap_dac_irq_disable(__DAC, ...) VSF_MCONNECT(VSF_DAC_CFG_IMP_REMAP_PREFIX, _dac_irq_disable)
127# define vsf_remap_dac_channel_request_once(__DAC, ...) VSF_MCONNECT(VSF_DAC_CFG_IMP_REMAP_PREFIX, _dac_channel_request_once)
128# define vsf_remap_dac_channel_config(__DAC, ...) VSF_MCONNECT(VSF_DAC_CFG_IMP_REMAP_PREFIX, _dac_channel_config)
129# define vsf_remap_dac_channel_request(__DAC, ...) VSF_MCONNECT(VSF_DAC_CFG_IMP_REMAP_PREFIX, _dac_channel_request)
130# define vsf_remap_dac_get_configuration VSF_MCONNECT(VSF_DAC_CFG_IMP_REMAP_PREFIX, _dac_get_configuration)
132# define VSF_DAC_CFG_IMP_REMAP_FUNCTIONS \
133 vsf_err_t vsf_imp_dac_init(vsf_imp_dac_t *dac) \
135 VSF_HAL_ASSERT(dac != NULL); \
136 return vsf_remap_dac_init((vsf_remap_dac_t *)dac); \
139 void vsf_imp_dac_fini(vsf_imp_dac_t *dac) \
141 VSF_HAL_ASSERT(dac != NULL); \
142 vsf_remap_dac_fini((vsf_remap_dac_t *)dac); \
145 vsf_remap_dac_status_t vsf_imp_dac_status(vsf_imp_dac_t *dac) \
147 VSF_HAL_ASSERT(dac != NULL); \
148 return vsf_remap_dac_status((vsf_remap_dac_t *)dac); \
151 vsf_remap_dac_capability_t vsf_imp_dac_capability(vsf_imp_dac_t *dac) \
153 VSF_HAL_ASSERT(dac != NULL); \
154 return vsf_remap_dac_capability((vsf_remap_dac_t *)dac); \
157 fsm_rt_t vsf_imp_dac_enable(vsf_imp_dac_t *dac) \
159 VSF_HAL_ASSERT(dac != NULL); \
160 return vsf_remap_dac_enable((vsf_remap_dac_t *)dac); \
163 fsm_rt_t vsf_imp_dac_disable(vsf_imp_dac_t *dac) \
165 VSF_HAL_ASSERT(dac != NULL); \
166 return vsf_remap_dac_disable((vsf_remap_dac_t *)dac); \
169 void vsf_imp_dac_irq_enable(vsf_imp_dac_t *dac, vsf_remap_dac_irq_mask_t irq_mask) \
171 VSF_HAL_ASSERT(dac != NULL); \
172 vsf_remap_dac_irq_enable((vsf_remap_dac_t *)dac, irq_mask); \
175 void vsf_imp_dac_irq_disable(vsf_imp_dac_t *dac, vsf_remap_dac_irq_mask_t irq_mask) \
177 VSF_HAL_ASSERT(dac != NULL); \
178 vsf_remap_dac_irq_disable((vsf_remap_dac_t *)dac, irq_mask); \
181 vsf_err_t vsf_imp_dac_channel_request_once(vsf_imp_dac_t *dac, \
182 vsf_remap_dac_channel_cfg_t *channel_cfg, uint_fast16_t value) \
184 VSF_HAL_ASSERT(dac != NULL); \
185 return vsf_remap_dac_channel_request_once((vsf_remap_dac_t *)dac, channel_cfg, value); \
188 vsf_err_t vsf_imp_dac_channel_config(vsf_imp_dac_t *dac, \
189 vsf_remap_dac_channel_cfg_t *channel_cfgs, uint_fast8_t channel_cfgs_cnt) \
191 VSF_HAL_ASSERT(dac != NULL); \
192 return vsf_remap_dac_channel_config((vsf_remap_dac_t *)dac, channel_cfgs, channel_cfgs_cnt);\
195 vsf_err_t vsf_imp_dac_channel_request(vsf_imp_dac_t *dac, \
196 void *buffer, uint_fast32_t count) \
198 VSF_HAL_ASSERT(dac != NULL); \
199 return vsf_remap_dac_channel_request((vsf_remap_dac_t *)dac, buffer, count); \
202 vsf_err_t vsf_imp_dac_get_configuration(vsf_imp_dac_t *dac, vsf_dac_cfg_t *cfg) \
204 VSF_HAL_ASSERT(dac != NULL); \
205 return vsf_remap_dac_get_configuration((vsf_remap_dac_t *)dac, cfg); \
214#define VSF_HAL_TEMPLATE_IMP_NAME _dac
215#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _DAC
217#if !defined(VSF_DAC_CFG_IMP_PREFIX) && !defined(VSF_DAC_CFG_IMP_DEVICE_PREFIX)
218# error "Please define VSF_DAC_CFG_IMP_PREFIX in dac driver"
221#if !defined(VSF_DAC_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_DAC_CFG_IMP_DEVICE_UPCASE_PREFIX)
222# error "Please define VSF_DAC_CFG_IMP_UPCASE_PREFIX in dac driver"
225#ifndef VSF_DAC_CFG_IMP_COUNT_MASK_PREFIX
226# define VSF_DAC_CFG_IMP_COUNT_MASK_PREFIX VSF_DAC_CFG_IMP_UPCASE_PREFIX
229#ifdef VSF_DAC_CFG_IMP_REMAP_FUNCTIONS
230# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_DAC_CFG_IMP_REMAP_FUNCTIONS
235#undef VSF_DAC_CFG_IMP_PREFIX
236#undef VSF_DAC_CFG_IMP_COUNT_MASK_PREFIX
237#undef VSF_DAC_CFG_IMP_UPCASE_PREFIX
238#undef VSF_DAC_CFG_IMP_DEVICE_PREFIX
239#undef VSF_DAC_CFG_IMP_DEVICE_UPCASE_PREFIX
240#undef VSF_DAC_CFG_IMP_LV0
241#undef VSF_DAC_CFG_IMP_REMAP_FUNCTIONS
242#undef VSF_DAC_CFG_IMP_HAS_OP
243#undef VSF_DAC_CFG_IMP_EXTERN_OP
246#undef vsf_imp_dac_init
247#undef vsf_imp_dac_fini
248#undef vsf_imp_dac_enable
249#undef vsf_imp_dac_disable
250#undef vsf_imp_dac_status
251#undef vsf_imp_dac_capability
252#undef vsf_imp_dac_irq_enable
253#undef vsf_imp_dac_irq_disable
254#undef vsf_imp_dac_channel_request_once
255#undef vsf_imp_dac_channel_config
256#undef vsf_imp_dac_channel_request
257#undef vsf_imp_dac_get_configuration
259#undef vsf_remap_dac_t
260#undef vsf_remap_dac_init
261#undef vsf_remap_dac_fini
262#undef vsf_remap_dac_enable
263#undef vsf_remap_dac_disable
264#undef vsf_remap_dac_status
265#undef vsf_remap_dac_capability
266#undef vsf_remap_dac_irq_enable
267#undef vsf_remap_dac_irq_disable
268#undef vsf_remap_dac_channel_request_once
269#undef vsf_remap_dac_channel_config
270#undef vsf_remap_dac_channel_request
271#undef vsf_remap_dac_get_configuration
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NOT_SUPPORT
function not supported
Definition __type.h:46
#define NULL
Definition lvgl.h:26
DAC capability structure that can be reimplemented in specific HAL drivers.
Definition vsf_template_dac.h:294
uint8_t max_resolution_bits
Maximum resolution bits.
Definition vsf_template_dac.h:299
DAC configuration structure.
Definition vsf_template_dac.h:263
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36