VSF Documented
Data Structures | Macros | Typedefs | Functions
vsf_template_pwm.h File Reference
#include "./vsf_template_hal_driver.h"
#include "hal/arch/vsf_arch.h"

Go to the source code of this file.

Data Structures

struct  vsf_pwm_cfg_t
 
struct  vsf_pwm_capability_t
 
struct  vsf_pwm_op_t
 
struct  vsf_pwm_t
 

Macros

#define VSF_PWM_CFG_MULTI_CLASS   ENABLED
 
#define VSF_PWM_CFG_PREFIX   vsf
 
#define VSF_PWM_CFG_FUNCTION_RENAME   ENABLED
 
#define VSF_PWM_CFG_REIMPLEMENT_TYPE_CFG   DISABLED
 
#define VSF_PWM_CFG_REIMPLEMENT_TYPE_CAPABILITY   DISABLED
 
#define VSF_PWM_CFG_INHERT_HAL_CAPABILITY   ENABLED
 
#define VSF_PWM_APIS(__prefix_name)
 
#define __VSF_HAL_TEMPLATE_API   VSF_HAL_TEMPLATE_API_FP
 
#define __vsf_pwm_t   VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_t)
 
#define vsf_pwm_init(__PM, ...)   VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_init) ((__vsf_pwm_t *)(__PM), ##__VA_ARGS__)
 
#define vsf_pwm_fini(__PM)   VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_fini) ((__vsf_pwm_t *)(__PM))
 
#define vsf_pwm_enable(__PM)   VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_enable) ((__vsf_pwm_t *)(__PM))
 
#define vsf_pwm_disable(__PM)   VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_disable) ((__vsf_pwm_t *)(__PM))
 
#define vsf_pwm_capability(__PM)   VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_capability) ((__vsf_pwm_t *)(__PM))
 
#define vsf_pwm_set(__PM, ...)   VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_set) ((__vsf_pwm_t *)(__PM), ##__VA_ARGS__)
 
#define vsf_pwm_get_freq(__PM)   VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_get_freq) ((__vsf_pwm_t *)(__PM))
 

Typedefs

typedef struct vsf_pwm_cfg_t vsf_pwm_cfg_t
 
typedef struct vsf_pwm_capability_t vsf_pwm_capability_t
 
typedef struct vsf_pwm_t vsf_pwm_t
 
typedef struct vsf_pwm_op_t vsf_pwm_op_t
 

Functions

vsf_err_t vsf_pwm_init (vsf_pwm_t *pwm_ptr, vsf_pwm_cfg_t *cfg_ptr)
 initialize a pwm instance.
 
void vsf_pwm_fini (vsf_pwm_t *pwm_ptr)
 finalize a pwm instance.
 
fsm_rt_t vsf_pwm_enable (vsf_pwm_t *pwm_ptr)
 enable interrupt masks of pwm instance.
 
fsm_rt_t vsf_pwm_disable (vsf_pwm_t *pwm_ptr)
 disable interrupt masks of pwm instance.
 
vsf_pwm_capability_t vsf_pwm_capability (vsf_pwm_t *pwm_ptr)
 get the capability of pwm instance.
 
vsf_err_t vsf_pwm_set (vsf_pwm_t *pwm_ptr, uint8_t channel, uint32_t period, uint32_t pulse)
 pwm set the period width and pulse width for a channel
 
uint32_t vsf_pwm_get_freq (vsf_pwm_t *pwm_ptr)
 pwm get clock frequency
 
vsf_err_t vsf_pwm_set_ms (vsf_pwm_t *pwm_ptr, uint8_t channel, uint32_t period, uint32_t pulse)
 pwm set the period width and pulse width for a channel
 
vsf_err_t vsf_pwm_set_us (vsf_pwm_t *pwm_ptr, uint8_t channel, uint32_t period, uint32_t pulse)
 pwm set the period width and pulse width for a channel
 
vsf_err_t vsf_pwm_set_ns (vsf_pwm_t *pwm_ptr, uint8_t channel, uint32_t period, uint32_t pulse)
 pwm set the period width and pulse width for a channel
 

Macro Definition Documentation

◆ VSF_PWM_CFG_MULTI_CLASS

#define VSF_PWM_CFG_MULTI_CLASS   ENABLED

◆ VSF_PWM_CFG_PREFIX

#define VSF_PWM_CFG_PREFIX   vsf

◆ VSF_PWM_CFG_FUNCTION_RENAME

#define VSF_PWM_CFG_FUNCTION_RENAME   ENABLED

◆ VSF_PWM_CFG_REIMPLEMENT_TYPE_CFG

#define VSF_PWM_CFG_REIMPLEMENT_TYPE_CFG   DISABLED

Redefine struct vsf_pwm_cfg_t. The vsf_pwm_isr_handler_t type also needs to be redefined For compatibility, members should not be deleted when struct vsf_pwm_cfg_t redefining.

◆ VSF_PWM_CFG_REIMPLEMENT_TYPE_CAPABILITY

#define VSF_PWM_CFG_REIMPLEMENT_TYPE_CAPABILITY   DISABLED

Redefine struct vsf_pwm_capability_t. For compatibility, members should not be deleted when struct vsf_pwm_capability_t redefining.

◆ VSF_PWM_CFG_INHERT_HAL_CAPABILITY

#define VSF_PWM_CFG_INHERT_HAL_CAPABILITY   ENABLED

◆ VSF_PWM_APIS

#define VSF_PWM_APIS (   __prefix_name)
Value:
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, pwm, init, VSF_MCONNECT(__prefix_name, _pwm_t) *pwm_ptr, vsf_pwm_cfg_t *cfg_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, void, pwm, fini, VSF_MCONNECT(__prefix_name, _pwm_t) *pwm_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, fsm_rt_t, pwm, enable, VSF_MCONNECT(__prefix_name, _pwm_t) *pwm_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, fsm_rt_t, pwm, disable, VSF_MCONNECT(__prefix_name, _pwm_t) *pwm_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_pwm_capability_t, pwm, capability, VSF_MCONNECT(__prefix_name, _pwm_t) *pwm_ptr) \
__VSF_HAL_TEMPLATE_API(__prefix_name, vsf_err_t, pwm, set, VSF_MCONNECT(__prefix_name, _pwm_t) *pwm_ptr, uint8_t channel, uint32_t period, uint32_t pulse)\
__VSF_HAL_TEMPLATE_API(__prefix_name, uint32_t, pwm, get_freq, VSF_MCONNECT(__prefix_name, _pwm_t) *pwm_ptr)
vsf_err_t
Definition __type.h:42
struct VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_t)
Definition flash.c:53
__le16 capability
Definition ieee80211.h:134
unsigned uint32_t
Definition stdint.h:9
unsigned char uint8_t
Definition stdint.h:5
Definition vsf_template_pwm.h:101
Definition vsf_template_pwm.h:92
fsm_rt_t
Definition vsf_fsm.h:315
#define __VSF_HAL_TEMPLATE_API
Definition vsf_template_pwm.h:115

◆ __VSF_HAL_TEMPLATE_API

#define __VSF_HAL_TEMPLATE_API   VSF_HAL_TEMPLATE_API_FP

◆ __vsf_pwm_t

#define __vsf_pwm_t   VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_t)

◆ vsf_pwm_init

#define vsf_pwm_init (   __PM,
  ... 
)    VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_init) ((__vsf_pwm_t *)(__PM), ##__VA_ARGS__)

◆ vsf_pwm_fini

#define vsf_pwm_fini (   __PM)    VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_fini) ((__vsf_pwm_t *)(__PM))

◆ vsf_pwm_enable

#define vsf_pwm_enable (   __PM)    VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_enable) ((__vsf_pwm_t *)(__PM))

◆ vsf_pwm_disable

#define vsf_pwm_disable (   __PM)    VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_disable) ((__vsf_pwm_t *)(__PM))

◆ vsf_pwm_capability

#define vsf_pwm_capability (   __PM)    VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_capability) ((__vsf_pwm_t *)(__PM))

◆ vsf_pwm_set

#define vsf_pwm_set (   __PM,
  ... 
)    VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_set) ((__vsf_pwm_t *)(__PM), ##__VA_ARGS__)

◆ vsf_pwm_get_freq

#define vsf_pwm_get_freq (   __PM)    VSF_MCONNECT(VSF_PWM_CFG_PREFIX, _pwm_get_freq) ((__vsf_pwm_t *)(__PM))

Typedef Documentation

◆ vsf_pwm_cfg_t

typedef struct vsf_pwm_cfg_t vsf_pwm_cfg_t

◆ vsf_pwm_capability_t

◆ vsf_pwm_t

typedef struct vsf_pwm_t vsf_pwm_t

◆ vsf_pwm_op_t

typedef struct vsf_pwm_op_t vsf_pwm_op_t

Function Documentation

◆ vsf_pwm_init()

vsf_err_t vsf_pwm_init ( vsf_pwm_t pwm_ptr,
vsf_pwm_cfg_t cfg_ptr 
)
extern

initialize a pwm instance.

Parameters
[in]pwm_ptra pointer to structure vsf_pwm_t
[in]cfg_ptra pointer to structure vsf_pwm_cfg_t
Returns
vsf_err_t: VSF_ERR_NONE if pwm was initialized, or a negative error code
Note
It is not necessary to call vsf_pwm_fini() to deinitialization. vsf_pwm_init() should be called before any other pwm API except vsf_pwm_capability().

◆ vsf_pwm_fini()

void vsf_pwm_fini ( vsf_pwm_t pwm_ptr)
extern

finalize a pwm instance.

Parameters
[in]pwm_ptra pointer to structure vsf_pwm_t
Returns
none

◆ vsf_pwm_enable()

fsm_rt_t vsf_pwm_enable ( vsf_pwm_t pwm_ptr)
extern

enable interrupt masks of pwm instance.

Parameters
[in]pwm_ptra pointer to structure vsf_pwm_t
[in]irq_maskone or more value of enum vsf_pwm_irq_mask_t
Returns
none.

◆ vsf_pwm_disable()

fsm_rt_t vsf_pwm_disable ( vsf_pwm_t pwm_ptr)
extern

disable interrupt masks of pwm instance.

Parameters
[in]pwm_ptra pointer to structure vsf_pwm_t
[in]irq_maskone or more value of enum vsf_pwm_irq_mask_t, vsf_pwm_irq_mask_t
Returns
none.

◆ vsf_pwm_capability()

vsf_pwm_capability_t vsf_pwm_capability ( vsf_pwm_t pwm_ptr)
extern

get the capability of pwm instance.

Parameters
[in]pwm_ptra pointer to structure vsf_pwm_t
Returns
vsf_pwm_capability_t: return all capability of current pwm vsf_pwm_capability_t

◆ vsf_pwm_set()

vsf_err_t vsf_pwm_set ( vsf_pwm_t pwm_ptr,
uint8_t  channel,
uint32_t  period,
uint32_t  pulse 
)
extern

pwm set the period width and pulse width for a channel

Parameters
[in]pwm_ptra pointer to structure vsf_pwm_t
[in]channelpwm channel
[in]periodpwm period width (in clock counter)
[in]pulsepwm pulse width (in clock counter)
Returns
vsf_err_t: VSF_ERR_NONE if the pwm set was successfully, or a negative error code

◆ vsf_pwm_get_freq()

uint32_t vsf_pwm_get_freq ( vsf_pwm_t pwm_ptr)
extern

pwm get clock frequency

Get clock frequency

Parameters
[in]pwm_ptrpwm instance
Returns
clock frequency (in Hz)
Parameters
[in]pwm_ptra pointer to structure vsf_pwm_t
Returns
uint32_t: pwm clock frequency

◆ vsf_pwm_set_ms()

vsf_err_t vsf_pwm_set_ms ( vsf_pwm_t pwm_ptr,
uint8_t  channel,
uint32_t  period,
uint32_t  pulse 
)
extern

pwm set the period width and pulse width for a channel

Parameters
[in]pwm_ptra pointer to structure vsf_pwm_t
[in]channelpwm channel
[in]periodpwm period width (in milli-second)
[in]pulsepwm pulse width (in milli-second)
Returns
vsf_err_t: VSF_ERR_NONE if the pwm set was successfully, or a negative error code

◆ vsf_pwm_set_us()

vsf_err_t vsf_pwm_set_us ( vsf_pwm_t pwm_ptr,
uint8_t  channel,
uint32_t  period,
uint32_t  pulse 
)
extern

pwm set the period width and pulse width for a channel

Parameters
[in]pwm_ptra pointer to structure vsf_pwm_t
[in]channelpwm channel
[in]periodpwm period width (in micro-second)
[in]pulsepwm pulse width (in micro-second)
Returns
vsf_err_t: VSF_ERR_NONE if the pwm set was successfully, or a negative error code

◆ vsf_pwm_set_ns()

vsf_err_t vsf_pwm_set_ns ( vsf_pwm_t pwm_ptr,
uint8_t  channel,
uint32_t  period,
uint32_t  pulse 
)
extern

pwm set the period width and pulse width for a channel

Parameters
[in]pwm_ptra pointer to structure vsf_pwm_t
[in]channelpwm channel
[in]periodpwm period width (in nano-second)
[in]pulsepwm pulse width (in nano-second)
Returns
vsf_err_t: VSF_ERR_NONE if the pwm set was successfully, or a negative error code