18#ifndef __VSF_74HC595_GPIO_H__
19#define __VSF_74HC595_GPIO_H__
34#if VSF_HAL_USE_GPIO == ENABLED && VSF_HAL_USE_74HC595_GPIO == ENABLED
36#if defined(__VSF_HAL_74HC595_GPIO_CLASS_IMPLEMENT)
37# define __VSF_CLASS_IMPLEMENT__
48#ifndef VSF_74HC595_GPIO_CFG_MULTI_CLASS
49# define VSF_74HC595_GPIO_CFG_MULTI_CLASS VSF_GPIO_CFG_MULTI_CLASS
52#if VSF_74HC595_GPIO_CFG_MULTI_CLASS == ENABLED
53# define __VSF_74HC595_GPIO_HALOP .vsf_gpio.op = &vsf_74hc595_gpio_op,
55# define __VSF_74HC595_GPIO_HALOP
58#define __VSF_74HC595_GPIO_INIT(__CASCADE_NUM, __OP, __PARAM) \
59 __VSF_74HC595_GPIO_HALOP \
60 .op = (vsf_74hc595_op_t *)(__OP), \
62 .cascade_num = (__CASCADE_NUM),
63#define VSF_74HC595_GPIO_INIT(__CASCADE_NUM, __OP, __PARAM) \
64 __VSF_74HC595_GPIO_INIT((__CASCADE_NUM), (__OP), (__PARAM))
66#define __describe_74hc595_gpio(__name, __cascade_num, __param, __oe_control, \
67 __latch_control, __clock_control, __serial_output) \
68 static const vsf_74hc595_op_t VSF_MCONNECT3(__, __name, _op) = { \
69 .oe_control = (__oe_control), \
70 .latch_control = (__latch_control), \
71 .clock_control = (__clock_control), \
72 .serial_output = (__serial_output), \
74 vsf_74hc595_gpio_t __name = { \
75 __VSF_74HC595_GPIO_INIT((__cascade_num), \
76 &VSF_MCONNECT3(__, __name, _op), (__param)) \
79#define describe_74hc595_gpio(__name, __cascade_num, __param, __oe_control, \
80 __latch_control, __clock_control, __serial_output) \
81 __describe_74hc595_gpio(__name, (__cascade_num), (__param), \
82 (__oe_control), (__latch_control), (__clock_control), (__serial_output))
109#if VSF_74HC595_GPIO_CFG_MULTI_CLASS == ENABLED
#define ENABLED
Definition __type.h:28
Definition vsf_gpio_74hc595.h:94
unsigned int uint32_t
Definition lvgl.h:43
unsigned char uint8_t
Definition lvgl.h:40
#define vsf_class(__name)
Definition ooc_class.h:48
unsigned char uint_fast8_t
Definition stdint.h:23
Definition vsf_gpio_74hc595.h:87
void(* clock_control)(void *param, uint_fast8_t bit)
Definition vsf_gpio_74hc595.h:90
void(* latch_control)(void *param, uint_fast8_t bit)
Definition vsf_gpio_74hc595.h:89
void(* serial_output)(void *param, uint_fast8_t bit)
Definition vsf_gpio_74hc595.h:91
void(* oe_control)(void *param, uint_fast8_t bit)
Definition vsf_gpio_74hc595.h:88
gpio channel configuration
Definition vsf_template_gpio.h:414
Definition vsf_template_gpio.h:475
Definition vsf_template_gpio.h:491
vk_av_control_value_t value
Definition vsf_audio.h:171
vsf_gpio_pin_mask_t vsf_74hc595_gpio_read(vsf_74hc595_gpio_t *gpio_ptr)
Definition vsf_gpio_74hc595.c:87
vsf_gpio_pin_mask_t vsf_74hc595_gpio_get_direction(vsf_74hc595_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Definition vsf_gpio_74hc595.c:82
void vsf_74hc595_gpio_set_direction(vsf_74hc595_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask, vsf_gpio_pin_mask_t direction_mask)
Definition vsf_gpio_74hc595.c:65
void vsf_74hc595_gpio_toggle(vsf_74hc595_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
Definition vsf_gpio_74hc595.c:113
void vsf_74hc595_gpio_switch_direction(vsf_74hc595_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
void vsf_74hc595_gpio_init(vsf_74hc595_gpio_t *gpio_ptr)
Definition vsf_gpio_74hc595.c:44
void vsf_74hc595_gpio_port_config_pins(vsf_74hc595_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask, vsf_gpio_cfg_t *cfg_ptr)
Definition vsf_gpio_74hc595.c:60
#define VSF_74HC595_GPIO_CFG_MULTI_CLASS
Definition vsf_gpio_74hc595.h:49
void vsf_74hc595_gpio_set_input(vsf_74hc595_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
void vsf_74hc595_gpio_clear(vsf_74hc595_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
const vsf_gpio_op_t vsf_74hc595_gpio_op
void vsf_74hc595_gpio_set(vsf_74hc595_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
void vsf_74hc595_gpio_set_output(vsf_74hc595_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask)
void vsf_74hc595_gpio_write(vsf_74hc595_gpio_t *gpio_ptr, vsf_gpio_pin_mask_t pin_mask, vsf_gpio_pin_mask_t value)
Definition vsf_gpio_74hc595.c:94
#define vsf_gpio_pin_mask_t
Definition vsf_template_gpio.h:207