38 #include "drv_digital_out.h" 39 #include "drv_digital_in.h" 40 #include "drv_i2c_master.h" 53 #define KNOB_MAP_MIKROBUS( cfg, mikrobus ) \ 54 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \ 55 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \ 56 cfg.ena = MIKROBUS( mikrobus, MIKROBUS_AN ); \ 57 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \ 58 cfg.enb = MIKROBUS( mikrobus, MIKROBUS_CS ); \ 59 cfg.oe = MIKROBUS( mikrobus, MIKROBUS_PWM ); \ 60 cfg.sw = MIKROBUS( mikrobus, MIKROBUS_INT ); 67 #define KNOB_RETVAL uint8_t 70 #define KNOB_INIT_ERROR 0xFF 77 #define KNOB_REG_MODE_1 0x00 78 #define KNOB_REG_MODE_2 0x01 79 #define KNOB_REG_LED_OUTPUT_STATE_0 0x02 80 #define KNOB_REG_LED_OUTPUT_STATE_1 0x03 81 #define KNOB_REG_LED_OUTPUT_STATE_2 0x04 82 #define KNOB_REG_LED_OUTPUT_STATE_3 0x05 83 #define KNOB_REG_LED_OUTPUT_STATE_4 0x06 84 #define KNOB_REG_LED_OUTPUT_STATE_5 0x07 85 #define KNOB_REG_GROUP_DUTY_CYCLE_CONTROL 0x08 86 #define KNOB_REG_GROUP_FREQUENCY 0x09 87 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_0 0x0A 88 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_1 0x0B 89 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_2 0x0C 90 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_3 0x0D 91 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_4 0x0E 92 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_5 0x0F 93 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_6 0x10 94 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_7 0x11 95 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_8 0x12 96 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_9 0x13 97 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_10 0x14 98 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_11 0x15 99 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_12 0x16 100 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_13 0x17 101 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_14 0x18 102 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_15 0x19 103 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_16 0x1A 104 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_17 0x1B 105 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_18 0x1C 106 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_19 0x1D 107 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_20 0x1E 108 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_21 0x1F 109 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_22 0x20 110 #define KNOB_REG_BRIGHTNESS_CONTROL_LED_23 0x21 111 #define KNOB_REG_OUTPUT_GAIN_CONTROL_0 0x22 112 #define KNOB_REG_OUTPUT_GAIN_CONTROL_1 0x23 113 #define KNOB_REG_OUTPUT_GAIN_CONTROL_2 0x24 114 #define KNOB_REG_OUTPUT_GAIN_CONTROL_3 0x25 115 #define KNOB_REG_OUTPUT_GAIN_CONTROL_4 0x26 116 #define KNOB_REG_OUTPUT_GAIN_CONTROL_5 0x27 117 #define KNOB_REG_OUTPUT_GAIN_CONTROL_6 0x28 118 #define KNOB_REG_OUTPUT_GAIN_CONTROL_7 0x29 119 #define KNOB_REG_OUTPUT_GAIN_CONTROL_8 0x2A 120 #define KNOB_REG_OUTPUT_GAIN_CONTROL_9 0x2B 121 #define KNOB_REG_OUTPUT_GAIN_CONTROL_10 0x2C 122 #define KNOB_REG_OUTPUT_GAIN_CONTROL_11 0x2D 123 #define KNOB_REG_OUTPUT_GAIN_CONTROL_12 0x2E 124 #define KNOB_REG_OUTPUT_GAIN_CONTROL_13 0x2F 125 #define KNOB_REG_OUTPUT_GAIN_CONTROL_14 0x30 126 #define KNOB_REG_OUTPUT_GAIN_CONTROL_15 0x31 127 #define KNOB_REG_OUTPUT_GAIN_CONTROL_16 0x32 128 #define KNOB_REG_OUTPUT_GAIN_CONTROL_17 0x33 129 #define KNOB_REG_OUTPUT_GAIN_CONTROL_18 0x34 130 #define KNOB_REG_OUTPUT_GAIN_CONTROL_19 0x35 131 #define KNOB_REG_OUTPUT_GAIN_CONTROL_20 0x36 132 #define KNOB_REG_OUTPUT_GAIN_CONTROL_21 0x37 133 #define KNOB_REG_OUTPUT_GAIN_CONTROL_22 0x38 134 #define KNOB_REG_OUTPUT_GAIN_CONTROL_23 0x39 135 #define KNOB_REG_OFFSET 0x3A 136 #define KNOB_REG_I2C_BUS_SUBADDRESS_1 0x3B 137 #define KNOB_REG_I2C_BUS_SUBADDRESS_2 0x3C 138 #define KNOB_REG_I2C_BUS_SUBADDRESS_3 0x3D 139 #define KNOB_REG_ALL_CALL_I2C_BUS_ADDRESS 0x3E 140 #define KNOB_REG_BRIGHTNESS_CONTROL_FOR_ALL_LED 0x3F 141 #define KNOB_REG_GAIN_CONTROL_FOR_ALL_LED 0x40 142 #define KNOB_REG_OUTPUT_ERROR_FLAG_0 0x41 143 #define KNOB_REG_OUTPUT_ERROR_FLAG_1 0x42 144 #define KNOB_REG_OUTPUT_ERROR_FLAG_2 0x43 145 #define KNOB_REG_OUTPUT_ERROR_FLAG_3 0x44 146 #define KNOB_REG_OUTPUT_ERROR_FLAG_4 0x45 147 #define KNOB_REG_OUTPUT_ERROR_FLAG_5 0x46 154 #define KNOB_M1_AUTO_INCREMENT_BIT_1_TO_0 0x00 155 #define KNOB_M1_AUTO_INCREMENT_BIT_1_TO_1 0x40 156 #define KNOB_M1_AUTO_INCREMENT_BIT_0_TO_0 0x00 157 #define KNOB_M1_AUTO_INCREMENT_BIT_0_TO_1 0x20 158 #define KNOB_M1_SET_NORMAL_MODE 0x00 159 #define KNOB_M1_SET_LOW_POWER_MODE 0x10 160 #define KNOB_M1_USES_I2C_BUS_SUBADDRESS_1 0x08 161 #define KNOB_M1_USES_I2C_BUS_SUBADDRESS_2 0x04 162 #define KNOB_M1_USES_I2C_BUS_SUBADDRESS_3 0x02 163 #define KNOB_M1_USES_ALL_CALL_I2C_BUS_ADDRESS 0x01 170 #define KNOB_M2_GROUP_CONTROL_DIMMING 0x00 171 #define KNOB_M2_GROUP_CONTROL_BLINKING 0x20 172 #define KNOB_M2_CHANGE_ON_STOP_CMD 0x00 173 #define KNOB_M2_CHANGE_ON_ACK 0x10 180 #define KNOB_BRIGHTNESS_ALL_LED 0x30 181 #define KNOB_OUTPUT_GAIN_ALL_LED 0x40 188 #define KNOB_LED_ON 0xFF 189 #define KNOB_LED_OFF 0x00 196 #define KNOB_DEF_SLAVE_ADDRESS 0x70 203 #define KNOB_FULL_OUTPUT_CURRENT_GAIN 0xFF 210 #define KNOB_ENABLE_LED_OUTPUTS 0x00 211 #define KNOB_DISABLE_LED_OUTPUTS 0x01 void knob_set_output_gain(knob_t *ctx, uint8_t led, uint8_t value)
Functions for set output GAIN.
void knob_default_cfg(knob_t *ctx)
Click Default Configuration function.
digital_out_t rst
Definition: knob.h:228
hal_i2c_speed_t i2c_speed
Definition: knob.h:272
void knob_led_output_enable(knob_t *ctx, uint8_t state)
Functions for enable Led Output.
KNOB_RETVAL knob_init(knob_t *ctx, knob_cfg_t *cfg)
Initialization function.
void knob_set_led_state(knob_t *ctx, uint8_t led, uint8_t state)
Functions for set led state(PWM on the LED)
uint8_t knob_get_enb_state(knob_t *ctx)
Functions for get ENB pin state.
pin_name_t sw
Definition: knob.h:268
digital_in_t enb
Definition: knob.h:234
int32_t encoder_position
Definition: knob.h:245
#define KNOB_RETVAL
Definition: knob.h:67
void knob_generic_write(knob_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
Generic write function.
hal_i2c_address_t slave_address
Definition: knob.h:243
pin_name_t enb
Definition: knob.h:266
uint8_t state_old_rotate
Definition: knob.h:246
digital_out_t oe
Definition: knob.h:229
Click configuration structure definition.
Definition: knob.h:255
pin_name_t oe
Definition: knob.h:267
pin_name_t rst
Definition: knob.h:265
i2c_master_t i2c
Definition: knob.h:239
pin_name_t scl
Definition: knob.h:259
Click ctx object definition.
Definition: knob.h:224
void knob_set_brightness(knob_t *ctx, uint8_t led, uint8_t value)
Functions for set Brightness.
uint8_t start_status
Definition: knob.h:248
uint8_t knob_get_sw_button_state(knob_t *ctx)
Functions for get SW pin(switch button) state.
void knob_set_encoder_start_position(knob_t *ctx, int32_t position)
Functions for set new start encoder position.
hal_i2c_address_t i2c_address
Definition: knob.h:273
pin_name_t ena
Definition: knob.h:264
pin_name_t sda
Definition: knob.h:260
void knob_get_encoder_position(knob_t *ctx, int32_t *position, uint8_t *dir)
Functions for get Encoder position.
digital_in_t sw
Definition: knob.h:235
void knob_cfg_setup(knob_cfg_t *cfg)
Config Object Initialization function.
digital_in_t ena
Definition: knob.h:233
void knob_reset(knob_t *ctx)
Functions for reset device.
uint8_t knob_get_ena_state(knob_t *ctx)
Functions for get ENA pin state.
uint8_t state_new_rotate
Definition: knob.h:247
void knob_generic_read(knob_t *ctx, uint8_t reg, uint8_t *data_buf, uint8_t len)
Generic read function.