37 #define ZRTOS_GPIO__VA_ARG_MODE(args)\ 38 ((zrtos_gpio_mode_t)va_arg(args,unsigned int)) 39 #define ZRTOS_GPIO__VA_ARG_PIN(args)\ 40 ((zrtos_gpio_pin_t)va_arg(args,unsigned int)) 41 #define ZRTOS_GPIO__VA_ARG_VALUE_DIGITAL(args)\ 42 ((zrtos_gpio_value_digital_t)va_arg(args,unsigned int)) 43 #define ZRTOS_GPIO__VA_ARG_VALUE_ANALOG(args)\ 44 ((zrtos_gpio_value_analog_t)va_arg(args,unsigned int)) 56 ,zrtos_gpio_value_digital_t *val
61 ,zrtos_gpio_value_digital_t val
67 ,zrtos_gpio_value_analog_t *val
72 ,zrtos_gpio_value_analog_t val
78 #define ZRTOS_GPIO__INIT(\ 86 .set_mode = set_mode_\ 87 ,.digital_read = digital_read_\ 88 ,.digital_write = digital_write_\ 89 ,.analog_read = analog_read_\ 90 ,.analog_write = analog_write_\ 102 ,zrtos_gpio_pin_t pin
103 ,zrtos_gpio_value_digital_t *val
107 ,zrtos_gpio_pin_t pin
108 ,zrtos_gpio_value_digital_t val
112 ,zrtos_gpio_pin_t pin
113 ,zrtos_gpio_value_analog_t *val
117 ,zrtos_gpio_pin_t pin
118 ,zrtos_gpio_value_analog_t val
132 ,zrtos_gpio_pin_t pin
135 return thiz->
set_mode(thiz,pin,mode);
143 zrtos_gpio_pin_t pin;
145 size_t len = va_arg(args,
size_t);
179 ,zrtos_gpio_pin_t pin
180 ,zrtos_gpio_value_digital_t *val
190 zrtos_gpio_pin_t pin;
191 zrtos_gpio_value_digital_t *val;
192 size_t len = va_arg(args,
size_t);
196 val = va_arg(args,zrtos_gpio_value_digital_t*);
226 ,zrtos_gpio_pin_t pin
227 ,zrtos_gpio_value_digital_t val
237 zrtos_gpio_pin_t pin;
238 zrtos_gpio_value_digital_t val;
239 size_t len = va_arg(args,
size_t);
273 ,zrtos_gpio_pin_t pin
287 zrtos_gpio_pin_t pin;
288 size_t len = va_arg(args,
size_t);
320 ,zrtos_gpio_pin_t pin
334 zrtos_gpio_pin_t pin;
335 size_t len = va_arg(args,
size_t);
367 ,zrtos_gpio_pin_t pin
368 ,zrtos_gpio_value_analog_t *val
378 zrtos_gpio_pin_t pin;
379 zrtos_gpio_value_analog_t *val;
380 size_t len = va_arg(args,
size_t);
384 val = va_arg(args,zrtos_gpio_value_analog_t*);
414 ,zrtos_gpio_pin_t pin
415 ,zrtos_gpio_value_analog_t val
425 zrtos_gpio_pin_t pin;
426 zrtos_gpio_value_analog_t val;
427 size_t len = va_arg(args,
size_t);
461 ,zrtos_gpio_pin_t dataPin
462 ,zrtos_gpio_pin_t clockPin
467 zrtos_gpio_value_digital_t val;
469 for (i = 0; i < 8; ++i) {
475 value |= val << (7 - i);
484 ,zrtos_gpio_pin_t dataPin
485 ,zrtos_gpio_pin_t clockPin
490 zrtos_gpio_value_digital_t val;
492 for(i = 0; i < 8; i++){
497 val = ((value & 128) != 0);
516 #undef ZRTOS_GPIO__VA_ARG_MODE 517 #undef ZRTOS_GPIO__VA_ARG_PIN 518 #undef ZRTOS_GPIO__VA_ARG_VALUE_DIGITAL 519 #undef ZRTOS_GPIO__VA_ARG_VALUE_ANALOG zrtos_error_t zrtos_gpio__analog_write(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t val)
#define ZRTOS_GPIO__VA_ARG_MODE(args)
zrtos_error_t(* analog_write)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t val)
#define ZRTOS_GPIO__VA_ARG_PIN(args)
zrtos_error_t zrtos_gpio__digital_read_ex(zrtos_gpio_t *thiz,...)
bool zrtos_gpio_value_digital_t
uint8_t zrtos_gpio__shift_in(zrtos_gpio_t *thiz, zrtos_gpio_pin_t dataPin, zrtos_gpio_pin_t clockPin, bool is_lsb)
zrtos_error_t zrtos_gpio__set_high_va(zrtos_gpio_t *thiz, va_list args)
zrtos_error_t zrtos_gpio__set_mode_va(zrtos_gpio_t *thiz, va_list args)
void zrtos_arch__delay_microseconds(uint16_t us)
zrtos_error_t zrtos_gpio__shift_out(zrtos_gpio_t *thiz, zrtos_gpio_pin_t dataPin, zrtos_gpio_pin_t clockPin, bool is_lsb, uint8_t value)
void zrtos_gpio__delay_microseconds(uint16_t us)
zrtos_error_t zrtos_gpio__analog_read(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t *val)
zrtos_error_t zrtos_gpio__set_mode(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_mode_t mode)
zrtos_error_t zrtos_gpio__set_low_ex(zrtos_gpio_t *thiz,...)
zrtos_error_t(* digital_write)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t val)
void zrtos_arch__delay_milliseconds(uint16_t ms)
zrtos_arch_gpio_pin_t zrtos_gpio_pin_t
struct _zrtos_gpio_t zrtos_gpio_t
zrtos_error_t(* set_mode)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_mode_t mode)
zrtos_error_t zrtos_gpio__digital_read_va(zrtos_gpio_t *thiz, va_list args)
zrtos_error_t(* analog_read)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t *val)
#define ZRTOS_GPIO__VA_ARG_VALUE_DIGITAL(args)
ZRTOS_ASSERT__STATIC(sizeof(zrtos_gpio_value_digital_t)<=sizeof(unsigned int))
zrtos_error_t zrtos_gpio__analog_read_va(zrtos_gpio_t *thiz, va_list args)
bool zrtos_error__is_success(zrtos_error_t thiz)
uint16_t zrtos_arch_gpio_value_analog_t
Successful program execution status.
#define ZRTOS_GPIO__VA_ARG_VALUE_ANALOG(args)
zrtos_error_t zrtos_gpio__set_low_va(zrtos_gpio_t *thiz, va_list args)
zrtos_error_t zrtos_gpio__digital_read(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t *val)
zrtos_error_t zrtos_gpio__analog_write_va(zrtos_gpio_t *thiz, va_list args)
zrtos_arch_gpio_value_analog_t zrtos_gpio_value_analog_t
zrtos_error_t zrtos_gpio__set_high_ex(zrtos_gpio_t *thiz,...)
zrtos_error_t zrtos_gpio__set_mode_ex(zrtos_gpio_t *thiz,...)
zrtos_error_t(* digital_read)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t *val)
zrtos_error_t zrtos_gpio__analog_write_ex(zrtos_gpio_t *thiz,...)
bool zrtos_gpio__init(zrtos_gpio_t *thiz, zrtos_error_t(*set_mode)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_mode_t mode), zrtos_error_t(*digital_read)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t *val), zrtos_error_t(*digital_write)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t val), zrtos_error_t(*analog_read)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t *val), zrtos_error_t(*analog_write)(struct _zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_analog_t val))
zrtos_error_t zrtos_gpio__set_high(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin)
zrtos_error_t zrtos_gpio__digital_write_ex(zrtos_gpio_t *thiz,...)
void zrtos_gpio__delay_milliseconds(uint16_t ms)
zrtos_error_t zrtos_gpio__digital_write(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin, zrtos_gpio_value_digital_t val)
zrtos_error_t zrtos_gpio__digital_write_va(zrtos_gpio_t *thiz, va_list args)
uint8_t zrtos_arch_gpio_pin_t
zrtos_error_t zrtos_gpio__analog_read_ex(zrtos_gpio_t *thiz,...)
zrtos_error_t zrtos_gpio__set_low(zrtos_gpio_t *thiz, zrtos_gpio_pin_t pin)