pimoroni-pico/micropython/modules/breakout_ioexpander/breakout_ioexpander.h

45 lines
2.8 KiB
C

// Include MicroPython API.
#include "py/runtime.h"
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,
};
/***** 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);