2021-05-11 23:01:35 +00:00
|
|
|
// Include MicroPython API.
|
|
|
|
#include "py/runtime.h"
|
|
|
|
|
2021-05-13 14:30:18 +00:00
|
|
|
enum {
|
|
|
|
IOE_PIN_IN = 0b00010,
|
|
|
|
IOE_PIN_IN_PU = 0b10000,
|
|
|
|
IOE_PIN_OUT = 0b00001,
|
|
|
|
IOE_PIN_OD = 0b00011,
|
|
|
|
IOE_PIN_PWM = 0b00101,
|
|
|
|
IOE_PIN_ADC = 0b01010,
|
|
|
|
|
|
|
|
IOE_NUM_PINS = 14,
|
|
|
|
|
|
|
|
IOE_LOW = 0,
|
|
|
|
IOE_HIGH = 1,
|
|
|
|
};
|
2021-05-11 23:01:35 +00:00
|
|
|
|
|
|
|
/***** Extern of Class Definition *****/
|
|
|
|
extern const mp_obj_type_t breakout_ioexpander_BreakoutIOExpander_type;
|
|
|
|
|
|
|
|
/***** Extern of Class Methods *****/
|
|
|
|
extern void BreakoutIOExpander_print(const mp_print_t *print, mp_obj_t self_in, mp_print_kind_t kind);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_get_chip_id(mp_obj_t self_in);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_set_address(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_get_adc_vref(mp_obj_t self_in);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_set_adc_vref(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_enable_interrupt_out(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_disable_interrupt_out(mp_obj_t self_in);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_get_interrupt_flag(mp_obj_t self_in);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_clear_interrupt_flag(mp_obj_t self_in);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_set_pin_interrupt(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_pwm_load(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_pwm_loading(mp_obj_t self_in);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_pwm_clear(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_pwm_clearing(mp_obj_t self_in);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_set_pwm_control(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_set_pwm_period(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_get_mode(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_set_mode(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_input(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_input_as_voltage(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_output(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_setup_rotary_encoder(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|
|
|
|
extern mp_obj_t BreakoutIOExpander_read_rotary_encoder(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args);
|