38 #include "drv_digital_out.h" 39 #include "drv_digital_in.h" 40 #include "drv_i2c_master.h" 53 #define IRGESTURE_MAP_MIKROBUS( cfg, mikrobus ) \ 54 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \ 55 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \ 56 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT ) 63 #define IRGESTURE_RETVAL uint8_t 65 #define IRGESTURE_OK 0x00 66 #define IRGESTURE_INIT_ERROR 0xFF 73 #define IRGESTURE_I2C_ADDR 0x39 80 #define IRGESTURE_ENABLE 0x80 81 #define IRGESTURE_ATIME 0x81 82 #define IRGESTURE_WTIME 0x83 83 #define IRGESTURE_AILTL 0x84 84 #define IRGESTURE_AILTH 0x85 85 #define IRGESTURE_AIHTL 0x86 86 #define IRGESTURE_AIHTH 0x87 87 #define IRGESTURE_PILT 0x89 88 #define IRGESTURE_PIHT 0x8B 89 #define IRGESTURE_PERS 0x8C 90 #define IRGESTURE_CONFIG1 0x8D 91 #define IRGESTURE_PPULSE 0x8E 92 #define IRGESTURE_CONTROL 0x8F 93 #define IRGESTURE_CONFIG2 0x90 94 #define IRGESTURE_ID 0x92 95 #define IRGESTURE_STATUS 0x93 96 #define IRGESTURE_CDATAL 0x94 97 #define IRGESTURE_CDATAH 0x95 98 #define IRGESTURE_RDATAL 0x96 99 #define IRGESTURE_RDATAH 0x97 100 #define IRGESTURE_GDATAL 0x98 101 #define IRGESTURE_GDATAH 0x99 102 #define IRGESTURE_BDATAL 0x9A 103 #define IRGESTURE_BDATAH 0x9B 104 #define IRGESTURE_PDATA 0x9C 105 #define IRGESTURE_POFFSET_UR 0x9D 106 #define IRGESTURE_POFFSET_DL 0x9E 107 #define IRGESTURE_CONFIG3 0x9F 108 #define IRGESTURE_GPENTH 0xA0 109 #define IRGESTURE_GEXTH 0xA1 110 #define IRGESTURE_GCONF1 0xA2 111 #define IRGESTURE_GCONF2 0xA3 112 #define IRGESTURE_GOFFSET_U 0xA4 113 #define IRGESTURE_GOFFSET_D 0xA5 114 #define IRGESTURE_GOFFSET_L 0xA7 115 #define IRGESTURE_GOFFSET_R 0xA9 116 #define IRGESTURE_GPULSE 0xA6 117 #define IRGESTURE_GCONF3 0xAA 118 #define IRGESTURE_GCONF4 0xAB 119 #define IRGESTURE_GFLVL 0xAE 120 #define IRGESTURE_GSTATUS 0xAF 121 #define IRGESTURE_IFORCE 0xE4 122 #define IRGESTURE_PICLEAR 0xE5 123 #define IRGESTURE_CICLEAR 0xE6 124 #define IRGESTURE_AICLEAR 0xE7 125 #define IRGESTURE_GFIFO_U 0xFC 126 #define IRGESTURE_GFIFO_D 0xFD 127 #define IRGESTURE_GFIFO_L 0xFE 128 #define IRGESTURE_GFIFO_R 0xFF 135 #define DEFAULT_ATIME 219 136 #define DEFAULT_WTIME 246 137 #define DEFAULT_PROX_PPULSE 0x87 138 #define DEFAULT_GESTURE_PPULSE 0x89 139 #define DEFAULT_POFFSET_UR 0 140 #define DEFAULT_POFFSET_DL 0 141 #define DEFAULT_CONFIG1 0x60 142 #define DEFAULT_LDRIVE 0 143 #define DEFAULT_PGAIN 2 144 #define DEFAULT_AGAIN 1 145 #define DEFAULT_PILT 0 146 #define DEFAULT_PIHT 50 147 #define DEFAULT_AILT 0xFFFF 148 #define DEFAULT_AIHT 0 149 #define DEFAULT_PERS 0x11 150 #define DEFAULT_CONFIG2 0x01 151 #define DEFAULT_CONFIG3 0 152 #define DEFAULT_GPENTH 40 153 #define DEFAULT_GEXTH 30 154 #define DEFAULT_GCONF1 0x40 155 #define DEFAULT_GGAIN 2 156 #define DEFAULT_GLDRIVE 0 157 #define DEFAULT_GWTIME 1 158 #define DEFAULT_GOFFSET 0 159 #define DEFAULT_GPULSE 0xC9 160 #define DEFAULT_GCONF3 0 161 #define DEFAULT_GIEN 0 168 #define IRGESTURE_PON 0b00000001 169 #define IRGESTURE_AEN 0b00000010 170 #define IRGESTURE_PEN 0b00000100 171 #define IRGESTURE_WEN 0b00001000 172 #define IRGESTURE_AIEN 0b00010000 173 #define IRGESTURE_PIEN 0b00100000 174 #define IRGESTURE_GEN 0b01000000 175 #define IRGESTURE_GVALID 0b00000001 182 #define IRGESTURE_FAR 0x00 183 #define IRGESTURE_RIGHT 0x01 184 #define IRGESTURE_LEFT 0x02 185 #define IRGESTURE_UP 0x03 186 #define IRGESTURE_DOWN 0x04 187 #define IRGESTURE_NEAR 0x05 266 uint8_t u_data[ 32 ];
267 uint8_t d_data[ 32 ];
268 uint8_t l_data[ 32 ];
269 uint8_t r_data[ 32 ];
700 #endif // _IRGESTURE_H_ Definition: irgesture.h:250
i2c_master_t i2c
Definition: irgesture.h:207
void irgesture_default_cfg(irgesture_t *ctx)
Click Default Configuration function.
void irgesture_write_data(irgesture_t *ctx, uint8_t reg_addr, uint8_t write_data)
Write function.
uint8_t slave_address
Definition: irgesture.h:211
uint8_t irgesture_get_gesture_gain(irgesture_t *ctx)
Get gain for gesture function.
uint16_t near_count
Definition: irgesture.h:278
void irgesture_cfg_setup(irgesture_cfg_t *cfg)
Config Object Initialization function.
void irgesture_set_ambient_light_gain(irgesture_t *ctx, uint8_t gain_val)
Set gain for ambient light function.
gesture_dir_t irgesture_gesture_read_gesture(irgesture_t *ctx)
Processes a gesture event function.
uint32_t i2c_speed
Definition: irgesture.h:231
pin_name_t scl
Definition: irgesture.h:222
void irgesture_set_gesture_gain(irgesture_t *ctx, uint8_t gain_val)
Set gain for gesture function.
void irgesture_disable_light_sensor(irgesture_t *ctx)
Disable specific ambient light sensors function.
gesture_dir_t motion
Definition: irgesture.h:281
uint8_t irgesture_available(irgesture_t *ctx)
Determines if there is a gesture available function.
uint8_t irgesture_read_data(irgesture_t *ctx, uint8_t reg_addr)
Read function.
uint16_t irgesture_read_ambient_light(irgesture_t *ctx)
Read ambient light data function.
uint8_t irgesture_get_proxy_photo_mask(irgesture_t *ctx)
Get the current mask for enabled/disabled proximity photodiodes function.
Container for gesture data.
Definition: irgesture.h:264
uint16_t lr_count
Definition: irgesture.h:277
uint16_t ud_count
Definition: irgesture.h:276
uint8_t irgesture_read_proximity_data(irgesture_t *ctx)
Read proximity data function.
pin_name_t sda
Definition: irgesture.h:223
Definition: irgesture.h:251
Definition: irgesture.h:255
gesture_dir_t
Direction definitions.
Definition: irgesture.h:248
void irgesture_enable_gesture_sensor(irgesture_t *ctx)
Starts the gesture recognition engine function.
uint8_t irgesture_get_led_boost(irgesture_t *ctx)
Gets the LED current boost value function.
Click configuration structure definition.
Definition: irgesture.h:218
IRGESTURE_RETVAL irgesture_init(irgesture_t *ctx, irgesture_cfg_t *cfg)
Initialization function.
uint8_t irgesture_detect_gesture(irgesture_t *ctx)
Function decode a gesture event function.
uint16_t irgesture_read_blue_light(irgesture_t *ctx)
Read BLUE light data function.
uint16_t irgesture_read_green_light(irgesture_t *ctx)
Read GREEN light data function.
Definition: irgesture.h:254
uint8_t i2c_address
Definition: irgesture.h:232
Definition: irgesture.h:239
Definition: irgesture.h:257
void irgesture_disable_proximity_sensor(irgesture_t *ctx)
Disable specific proximity sensors function.
Definition: irgesture.h:241
gesture_prox_t state
Definition: irgesture.h:280
uint8_t irgesture_get_ambient_light_gain(irgesture_t *ctx)
Get gain for ambient light function.
uint8_t in_threshold
Definition: irgesture.h:272
Definition: irgesture.h:240
uint16_t far_count
Definition: irgesture.h:279
void irgesture_disable_gesture_sensor(irgesture_t *ctx)
Disable the gesture recognition engine function.
void irgesture_enable_light_sensor(irgesture_t *ctx)
Enable specific ambient light sensors function.
Definition: irgesture.h:252
uint8_t out_threshold
Definition: irgesture.h:273
gesture_prox_t
Definition: irgesture.h:236
uint8_t irgesture_get_proximity_gain(irgesture_t *ctx)
Get gain for proximity function.
uint8_t total_gestures
Definition: irgesture.h:271
void irgesture_set_proxy_photo_mask(irgesture_t *ctx, uint8_t mask)
Get the current mask for enabled/disabled proximity photodiodes function.
void irgesture_disable_power(irgesture_t *ctx)
Disable power sensor function.
uint8_t irgesture_get_interrupt(irgesture_t *ctx)
Get state of interrupt pin function.
Definition: irgesture.h:256
void irgesture_enable_proximity_sensor(irgesture_t *ctx)
Enable specific proximity sensors function.
uint8_t index
Definition: irgesture.h:270
void irgesture_set_gesture_mode(irgesture_t *ctx)
Sets the gesture mode function.
#define IRGESTURE_RETVAL
Definition: irgesture.h:63
pin_name_t int_pin
Definition: irgesture.h:227
uint16_t ud_delta
Definition: irgesture.h:274
Definition: irgesture.h:253
Definition: irgesture.h:238
void irgesture_set_led_boost(irgesture_t *ctx, uint8_t boost)
Sets the LED current boost value function.
Click ctx object definition.
Definition: irgesture.h:199
void irgesture_enable_power(irgesture_t *ctx)
Enable power sensor function.
uint16_t lr_delta
Definition: irgesture.h:275
void irgesture_set_proximity_gain(irgesture_t *ctx, uint8_t gain_val)
Set gain for proximity function.
uint16_t irgesture_read_red_light(irgesture_t *ctx)
Read RED light data function.
digital_in_t int_pin
Definition: irgesture.h:203