18#if VSF_HAL_USE_ADC == ENABLED 
   23#define vsf_real_adc_t                                          VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_t) 
   24#define vsf_real_adc_capability                                 VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_capability) 
   25#define vsf_real_adc_get_configuration                          VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_get_configuration) 
   27#ifndef VSF_ADC_CFG_REIMPLEMENT_API_CAPABILITY 
   28#   define  VSF_ADC_CFG_REIMPLEMENT_API_CAPABILITY              DISABLED 
   31#ifndef VSF_ADC_CFG_REIMPLEMENT_API_GET_CONFIGURATION 
   32#   define VSF_ADC_CFG_REIMPLEMENT_API_GET_CONFIGURATION        DISABLED 
   35#ifdef VSF_ADC_CFG_IMP_REMAP_PREFIX 
   36#   undef VSF_ADC_CFG_REIMPLEMENT_API_CAPABILITY 
   37#   define VSF_ADC_CFG_REIMPLEMENT_API_CAPABILITY               ENABLED 
   38#   undef VSF_ADC_CFG_REIMPLEMENT_API_GET_CONFIGURATION 
   39#   define VSF_ADC_CFG_REIMPLEMENT_API_GET_CONFIGURATION        ENABLED 
   42#if VSF_ADC_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED 
   43#   ifndef VSF_ADC_CFG_CAPABILITY_IRQ_MASK 
   44#       define VSF_ADC_CFG_CAPABILITY_IRQ_MASK                  VSF_ADC_IRQ_ALL_BITS_MASK 
   46#   ifndef VSF_ADC_CFG_CAPABILITY_MAX_DATA_BITS 
   47#       define VSF_ADC_CFG_CAPABILITY_MAX_DATA_BITS             12 
   49#   ifndef VSF_ADC_CFG_CAPABILITY_CHANNEL_COUNT 
   50#       define VSF_ADC_CFG_CAPABILITY_CHANNEL_COUNT             4 
   57#if VSF_ADC_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED 
   61        .irq_mask       = VSF_ADC_CFG_CAPABILITY_IRQ_MASK,
 
   63        .channel_count  = VSF_ADC_CFG_CAPABILITY_CHANNEL_COUNT,
 
   66    return adc_capability;
 
   70#if VSF_ADC_CFG_REIMPLEMENT_API_GET_CONFIGURATION == DISABLED 
   85#undef VSF_ADC_CFG_REIMPLEMENT_API_CAPABILITY 
   86#undef VSF_ADC_CFG_REIMPLEMENT_API_GET_CONFIGURATION 
   87#undef VSF_ADC_CFG_CAPABILITY_IRQ_MASK 
   88#undef VSF_ADC_CFG_CAPABILITY_MAX_DATA_BITS 
   89#undef VSF_ADC_CFG_CAPABILITY_CHANNEL_COUNT 
   92#undef vsf_real_adc_capability 
   93#undef vsf_real_adc_get_configuration 
   99#ifdef VSF_ADC_CFG_IMP_REMAP_PREFIX 
  100#   define vsf_imp_adc_t                        VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_t) 
  101#   define vsf_imp_adc_init                     VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_init) 
  102#   define vsf_imp_adc_fini                     VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_fini) 
  103#   define vsf_imp_adc_enable                   VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_enable) 
  104#   define vsf_imp_adc_disable                  VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_disable) 
  105#   define vsf_imp_adc_status                   VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_status) 
  106#   define vsf_imp_adc_capability               VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_capability) 
  107#   define vsf_imp_adc_irq_enable               VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_irq_enable) 
  108#   define vsf_imp_adc_irq_disable              VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_irq_disable) 
  109#   define vsf_imp_adc_channel_request_once     VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_channel_request_once) 
  110#   define vsf_imp_adc_channel_config           VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_channel_config) 
  111#   define vsf_imp_adc_channel_request          VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_channel_request) 
  112#   define vsf_imp_adc_get_configuration        VSF_MCONNECT(VSF_ADC_CFG_IMP_PREFIX, _adc_get_configuration) 
  114#   define vsf_remap_adc_t                      VSF_MCONNECT(VSF_ADC_CFG_IMP_REMAP_PREFIX, _adc_t) 
  115#   define vsf_remap_adc_init                   VSF_MCONNECT(VSF_ADC_CFG_IMP_REMAP_PREFIX, _adc_init) 
  116#   define vsf_remap_adc_fini                   VSF_MCONNECT(VSF_ADC_CFG_IMP_REMAP_PREFIX, _adc_fini) 
  117#   define vsf_remap_adc_enable                 VSF_MCONNECT(VSF_ADC_CFG_IMP_REMAP_PREFIX, _adc_enable) 
  118#   define vsf_remap_adc_disable                VSF_MCONNECT(VSF_ADC_CFG_IMP_REMAP_PREFIX, _adc_disable) 
  119#   define vsf_remap_adc_status                 VSF_MCONNECT(VSF_ADC_CFG_IMP_REMAP_PREFIX, _adc_status) 
  120#   define vsf_remap_adc_capability             VSF_MCONNECT(VSF_ADC_CFG_IMP_REMAP_PREFIX, _adc_capability) 
  121#   define vsf_remap_adc_irq_enable             VSF_MCONNECT(VSF_ADC_CFG_IMP_REMAP_PREFIX, _adc_irq_enable) 
  122#   define vsf_remap_adc_irq_disable            VSF_MCONNECT(VSF_ADC_CFG_IMP_REMAP_PREFIX, _adc_irq_disable) 
  123#   define vsf_remap_adc_channel_request_once   VSF_MCONNECT(VSF_ADC_CFG_IMP_REMAP_PREFIX, _adc_channel_request_once) 
  124#   define vsf_remap_adc_channel_config         VSF_MCONNECT(VSF_ADC_CFG_IMP_REMAP_PREFIX, _adc_channel_config) 
  125#   define vsf_remap_adc_channel_request        VSF_MCONNECT(VSF_ADC_CFG_IMP_REMAP_PREFIX, _adc_channel_request) 
  126#   define vsf_remap_adc_get_configuration      VSF_MCONNECT(VSF_ADC_CFG_IMP_REMAP_PREFIX, _adc_get_configuration) 
  128#   define VSF_ADC_CFG_IMP_REMAP_FUNCTIONS                                                            \ 
  129        vsf_err_t vsf_imp_adc_init(vsf_imp_adc_t *adc, vsf_adc_cfg_t *cfg)              \ 
  131            VSF_HAL_ASSERT(adc != NULL);                                                \ 
  132            return vsf_remap_adc_init((vsf_remap_adc_t *)adc, cfg);                     \ 
  135        void vsf_imp_adc_fini(vsf_imp_adc_t *adc)                                       \ 
  137            VSF_HAL_ASSERT(adc != NULL);                                                \ 
  138            vsf_remap_adc_fini((vsf_remap_adc_t *)adc);                                 \ 
  141        vsf_adc_status_t vsf_imp_adc_status(vsf_imp_adc_t *adc)                         \ 
  143            VSF_HAL_ASSERT(adc != NULL);                                                \ 
  144            return vsf_remap_adc_status((vsf_remap_adc_t *)adc);                        \ 
  147        vsf_adc_capability_t vsf_imp_adc_capability(vsf_imp_adc_t *adc)                 \ 
  149            VSF_HAL_ASSERT(adc != NULL);                                                \ 
  150            return vsf_remap_adc_capability((vsf_remap_adc_t *)adc);                    \ 
  153        fsm_rt_t vsf_imp_adc_enable(vsf_imp_adc_t *adc)                                 \ 
  155            VSF_HAL_ASSERT(adc != NULL);                                                \ 
  156            return vsf_remap_adc_enable((vsf_remap_adc_t *)adc);                        \ 
  159        fsm_rt_t vsf_imp_adc_disable(vsf_imp_adc_t *adc)                                \ 
  161            VSF_HAL_ASSERT(adc != NULL);                                                \ 
  162            return vsf_remap_adc_disable((vsf_remap_adc_t *)adc);                       \ 
  165        void vsf_imp_adc_irq_enable(vsf_imp_adc_t *adc, vsf_adc_irq_mask_t irq_mask)    \ 
  167            VSF_HAL_ASSERT(adc != NULL);                                                \ 
  168            vsf_remap_adc_irq_enable((vsf_remap_adc_t *)adc, irq_mask);                 \ 
  171        void vsf_imp_adc_irq_disable(vsf_imp_adc_t *adc, vsf_adc_irq_mask_t irq_mask)   \ 
  173            VSF_HAL_ASSERT(adc != NULL);                                                \ 
  174            vsf_remap_adc_irq_disable((vsf_remap_adc_t *)adc, irq_mask);                \ 
  177        vsf_err_t vsf_imp_adc_channel_request_once(vsf_imp_adc_t *adc,                  \ 
  178                vsf_adc_channel_cfg_t *channel_cfg, void *buffer)                       \ 
  180            VSF_HAL_ASSERT(adc != NULL);                                                \ 
  181            return vsf_remap_adc_channel_request_once((vsf_remap_adc_t *)adc,           \ 
  182                                                      channel_cfg, buffer);             \ 
  185        vsf_err_t vsf_imp_adc_channel_config(vsf_imp_adc_t *adc,                        \ 
  186                vsf_adc_channel_cfg_t *channel_cfgs, uint32_t channel_cfgs_cnt)         \ 
  188            VSF_HAL_ASSERT(adc != NULL);                                                \ 
  189            return vsf_remap_adc_channel_config((vsf_remap_adc_t *)adc,                 \ 
  190                                                channel_cfgs, channel_cfgs_cnt);        \ 
  193        vsf_err_t vsf_imp_adc_channel_request(vsf_imp_adc_t *adc,                       \ 
  194                void *buffer, uint_fast32_t count)                                      \ 
  196            VSF_HAL_ASSERT(adc != NULL);                                                \ 
  197            return vsf_remap_adc_channel_request((vsf_remap_adc_t *)adc, buffer, count);\ 
  199        vsf_err_t vsf_imp_adc_get_configuration(vsf_imp_adc_t *adc, vsf_adc_cfg_t *cfg) \ 
  201            VSF_HAL_ASSERT(adc != NULL);                                                \ 
  202            return vsf_remap_adc_get_configuration((vsf_remap_adc_t *)adc, cfg);        \ 
  208#define VSF_HAL_TEMPLATE_IMP_NAME                   _adc 
  209#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME            _ADC 
  211#if !defined(VSF_ADC_CFG_IMP_PREFIX) && !defined(VSF_ADC_CFG_IMP_DEVICE_PREFIX) 
  212#   error "Please define VSF_ADC_CFG_IMP_PREFIX in adc driver" 
  215#if !defined(VSF_ADC_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_ADC_CFG_IMP_DEVICE_UPCASE_PREFIX) 
  216#   error "Please define VSF_ADC_CFG_IMP_UPCASE_PREFIX in adc driver" 
  219#ifndef VSF_ADC_CFG_IMP_COUNT_MASK_PREFIX 
  220#   define VSF_ADC_CFG_IMP_COUNT_MASK_PREFIX        VSF_ADC_CFG_IMP_UPCASE_PREFIX 
  223#ifdef VSF_ADC_CFG_IMP_REMAP_FUNCTIONS 
  224#   define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS          VSF_ADC_CFG_IMP_REMAP_FUNCTIONS 
  229#undef VSF_ADC_CFG_IMP_PREFIX 
  230#undef VSF_ADC_CFG_IMP_COUNT_MASK_PREFIX 
  231#undef VSF_ADC_CFG_IMP_UPCASE_PREFIX 
  232#undef VSF_ADC_CFG_IMP_DEVICE_PREFIX 
  233#undef VSF_ADC_CFG_IMP_DEVICE_UPCASE_PREFIX 
  234#undef VSF_ADC_CFG_IMP_REMAP_PREFIX 
  235#undef VSF_ADC_CFG_IMP_LV0 
  236#undef VSF_ADC_CFG_IMP_REMAP_FUNCTIONS 
  237#undef VSF_ADC_CFG_IMP_HAS_OP 
  238#undef VSF_ADC_CFG_IMP_EXTERN_OP 
  241#undef vsf_imp_adc_init 
  242#undef vsf_imp_adc_fini 
  243#undef vsf_imp_adc_enable 
  244#undef vsf_imp_adc_disable 
  245#undef vsf_imp_adc_status 
  246#undef vsf_imp_adc_capability 
  247#undef vsf_imp_adc_irq_enable 
  248#undef vsf_imp_adc_irq_disable 
  249#undef vsf_imp_adc_channel_request_once 
  250#undef vsf_imp_adc_channel_config 
  251#undef vsf_imp_adc_channel_request 
  252#undef vsf_imp_adc_get_configuration 
  254#undef vsf_remap_adc_t 
  255#undef vsf_remap_adc_init 
  256#undef vsf_remap_adc_fini 
  257#undef vsf_remap_adc_enable 
  258#undef vsf_remap_adc_disable 
  259#undef vsf_remap_adc_status 
  260#undef vsf_remap_adc_capability 
  261#undef vsf_remap_adc_irq_enable 
  262#undef vsf_remap_adc_irq_disable 
  263#undef vsf_remap_adc_channel_request_once 
  264#undef vsf_remap_adc_channel_config 
  265#undef vsf_remap_adc_channel_request 
  266#undef vsf_remap_adc_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
Predefined VSF ADC capability that can be reimplemented in specific HAL drivers.
Definition vsf_template_adc.h:689
uint8_t max_data_bits
Definition vsf_template_adc.h:695
Configuration structure for ADC.
Definition vsf_template_adc.h:639
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36