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