Documentation
Includes
tuya_driver.h
#include "tuya_driver.h"
Macros
Marco __TUYA_PIN_H__
#define __TUYA_PIN_H__
Marco TUYA_PINS_NAME(PORT)
#define TUYA_PINS_NAME(PORT) \
PORT##0, PORT##1, PORT##2, PORT##3, PORT##4, \
PORT##5, PORT##6, PORT##7, PORT##8, PORT##9, \
PORT##10, PORT##11, PORT##12, PORT##13, PORT##14, \
PORT##15, PORT##16, PORT##17, PORT##18, PORT##19, \
PORT##20, PORT##21, PORT##22, PORT##23, PORT##24, \
PORT##25, PORT##26, PORT##27, PORT##28, PORT##29, \
PORT##30, PORT##31
Marco TUYA_PIN_INIT_LOW
#define TUYA_PIN_INIT_LOW ((uint16_t)(1 << 0))
Marco TUYA_PIN_INIT_HIGH
#define TUYA_PIN_INIT_HIGH ((uint16_t)(2 << 0))
Marco TUYA_PIN_INIT_MASK
#define TUYA_PIN_INIT_MASK ((uint16_t)(3 << 0))
Marco TUYA_PIN_IN
#define TUYA_PIN_IN ((uint16_t)(1 << 2))
Marco TUYA_PIN_IN_FL
#define TUYA_PIN_IN_FL ((uint16_t)(2 << 2))
Marco TUYA_PIN_IN_IRQ
#define TUYA_PIN_IN_IRQ ((uint16_t)(3 << 2))
Marco TUYA_PIN_OUT_PP
#define TUYA_PIN_OUT_PP ((uint16_t)(4 << 2))
Marco TUYA_PIN_OUT_OD
#define TUYA_PIN_OUT_OD ((uint16_t)(5 << 2))
Marco TUYA_PIN_INOUT_MASK
#define TUYA_PIN_INOUT_MASK ((uint16_t)(7 << 2))
Marco TUYA_PIN_IRQ_RISE
#define TUYA_PIN_IRQ_RISE ((uint16_t)(1 << 5))
Marco TUYA_PIN_IRQ_FALL
#define TUYA_PIN_IRQ_FALL ((uint16_t)(2 << 5))
Marco TUYA_PIN_IRQ_RISE_FALL
#define TUYA_PIN_IRQ_RISE_FALL ((uint16_t)(3 << 5))
Marco TUYA_PIN_IRQ_LOW
#define TUYA_PIN_IRQ_LOW ((uint16_t)(4 << 5))
Marco TUYA_PIN_IRQ_HIGH
#define TUYA_PIN_IRQ_HIGH ((uint16_t)(5 << 5))
Marco TUYA_PIN_IRQ_MASK
#define TUYA_PIN_IRQ_MASK ((uint16_t)(7 << 5))
Marco TUYA_PIN_PULL_UP
#define TUYA_PIN_PULL_UP ((uint16_t)(1 << 9))
Marco TUYA_PIN_PULL_DOWN
#define TUYA_PIN_PULL_DOWN ((uint16_t)(2 << 9))
Marco TUYA_PIN_PULL_NONE
#define TUYA_PIN_PULL_NONE ((uint16_t)(3 << 9))
Marco TUYA_PIN_MODE_MASK
#define TUYA_PIN_MODE_MASK ((uint16_t)(15 << 9))
Marco TUYA_PIN_NUM(__PINNAME)
#define TUYA_PIN_NUM(__PINNAME) (__PINNAME & 31)
Marco TUYA_PIN_PORT(__PINNAME)
#define TUYA_PIN_PORT(__PINNAME) (__PINNAME >> 5)
Functions
Func tuya_pin_irq_disable
int tuya_pin_irq_disable (tuya_pin_name_t pin);
Vars
Variable tuya_pin_init
int tuya_pin_init (tuya_pin_name_t pin, tuya_pin_mode_t mode);
Variable tuya_pin_write
int tuya_pin_write (tuya_pin_name_t pin, tuya_pin_level_t level);
Variable tuya_pin_read
int tuya_pin_read (tuya_pin_name_t pin);
Variable tuya_pin_control
int tuya_pin_control (tuya_pin_name_t pin, uint8_t cmd, void *arg);
Variable tuya_pin_irq_init
int tuya_pin_irq_init (tuya_pin_name_t pin, tuya_pin_mode_t irq_mode, tuya_pin_irq_cb cb, void *arg);
Variable tuya_pin_irq_enable
int tuya_pin_irq_enable (tuya_pin_name_t pin);
Variable tuya_pin_register
int tuya_pin_register (tuya_pin_ops_t *ops);
Consts
Types
Typedefs
Typedef tuya_pin_port_t;
typedef enum {
TUYA_PA = 0,
TUYA_PB = 1,
TUYA_PC = 2,
TUYA_PD = 3,
TUYA_PE = 4,
} tuya_pin_port_t;
Typedef tuya_pin_name_t;
typedef enum {
TUYA_PINS_NAME(TUYA_PA),
TUYA_PINS_NAME(TUYA_PB),
TUYA_PINS_NAME(TUYA_PC),
TUYA_PINS_NAME(TUYA_PD),
TUYA_PINS_NAME(TUYA_PE),
} tuya_pin_name_t;
Typedef tuya_pin_level_t;
typedef enum {
TUYA_PIN_LOW = 0,
TUYA_PIN_HIGH
} tuya_pin_level_t;
Typedef tuya_pin_mode_t;
typedef enum {
TUYA_PIN_MODE_IN_PU = TUYA_PIN_IN | TUYA_PIN_PULL_UP,
TUYA_PIN_MODE_IN_PD = TUYA_PIN_IN | TUYA_PIN_PULL_DOWN,
TUYA_PIN_MODE_IN_FL = TUYA_PIN_IN_FL,
TUYA_PIN_MODE_IN_IRQ_RISE = TUYA_PIN_IN_IRQ | TUYA_PIN_IRQ_RISE | TUYA_PIN_PULL_UP,
TUYA_PIN_MODE_IN_IRQ_FALL = TUYA_PIN_IN_IRQ | TUYA_PIN_IRQ_FALL | TUYA_PIN_PULL_UP,
TUYA_PIN_MODE_IN_IRQ_RISE_FALL = TUYA_PIN_IN_IRQ | TUYA_PIN_IRQ_RISE_FALL | TUYA_PIN_PULL_UP,
TUYA_PIN_MODE_IN_IRQ_LOW = TUYA_PIN_IN_IRQ | TUYA_PIN_IRQ_LOW | TUYA_PIN_PULL_UP,
TUYA_PIN_MODE_IN_IRQ_HIGH = TUYA_PIN_IN_IRQ | TUYA_PIN_IRQ_HIGH | TUYA_PIN_PULL_UP,
TUYA_PIN_MODE_OUT_PP_LOW = TUYA_PIN_OUT_PP | TUYA_PIN_INIT_LOW,
TUYA_PIN_MODE_OUT_PP_HIGH = TUYA_PIN_OUT_PP | TUYA_PIN_INIT_HIGH,
TUYA_PIN_MODE_OUT_PP_PU_LOW = TUYA_PIN_OUT_PP | TUYA_PIN_PULL_UP | TUYA_PIN_INIT_LOW,
TUYA_PIN_MODE_OUT_PP_PU_HIGH = TUYA_PIN_OUT_PP | TUYA_PIN_PULL_UP | TUYA_PIN_INIT_HIGH,
TUYA_PIN_MODE_OUT_PP_PD_LOW = TUYA_PIN_OUT_PP | TUYA_PIN_PULL_DOWN | TUYA_PIN_INIT_LOW,
TUYA_PIN_MODE_OUT_PP_PD_HIGH = TUYA_PIN_OUT_PP | TUYA_PIN_PULL_DOWN | TUYA_PIN_INIT_HIGH,
TUYA_PIN_MODE_OUT_OD_LOW = TUYA_PIN_OUT_OD | TUYA_PIN_INIT_LOW,
TUYA_PIN_MODE_OUT_OD_HIZ = TUYA_PIN_OUT_OD | TUYA_PIN_INIT_HIGH,
TUYA_PIN_MODE_OUT_OD_PU_LOW = TUYA_PIN_OUT_OD | TUYA_PIN_PULL_UP | TUYA_PIN_INIT_LOW,
TUYA_PIN_MODE_OUT_OD_PU_HIGH = TUYA_PIN_OUT_OD | TUYA_PIN_PULL_UP | TUYA_PIN_INIT_HIGH,
} tuya_pin_mode_t;
Typedef tuya_pin_irq_cb
typedef void (*tuya_pin_irq_cb)(void *args);
Typedef tuya_pin_irq_t;
typedef struct {
tuya_pin_mode_t mode;
tuya_pin_irq_cb cb;
void *arg;
} tuya_pin_irq_t;
Typedef tuya_pin_ops_t;
typedef struct {
int (*init) (tuya_pin_name_t pin, tuya_pin_mode_t mode);
int (*write) (tuya_pin_name_t pin, tuya_pin_level_t level);
int (*read) (tuya_pin_name_t pin);
int (*toggle) (tuya_pin_name_t pin);
int (*control) (tuya_pin_name_t pin, uint8_t cmd, void *arg);
} tuya_pin_ops_t;