21#ifndef PROTOCORE_VL53L0X_H
22#define PROTOCORE_VL53L0X_H
26#if PROTOCORE_ENABLE_VL53L0X
34#define VL53L0X_REG_SYSRANGE_START 0x00
36#define VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR 0x0B
38#define VL53L0X_REG_RESULT_INTERRUPT_STATUS 0x13
40#define VL53L0X_REG_RESULT_RANGE_STATUS 0x14
42#define VL53L0X_REG_IDENTIFICATION_MODEL_ID 0xC0
44#define VL53L0X_MODEL_ID 0xEE
46#define VL53L0X_RANGE_VALID 11
58 uint8_t interrupt_status;
59} Vl53l0xDataReadyArgs;
64 uint8_t range_status_reg;
65} Vl53l0xRangeStatusArgs;
70 uint8_t range_status_reg;
71} Vl53l0xRangeValidArgs;
117 Vl53l0xRangeMmArgs range_mm_args;
118 Vl53l0xDataReadyArgs data_ready_args;
119 Vl53l0xRangeStatusArgs range_status_args;
120 Vl53l0xRangeValidArgs range_valid_args;
121 Vl53l0xBeginArgs begin_args;
122 Vl53l0xReadMmArgs read_mm_args;
129extern Vl53l0xVars Vl53l0xV;
134 void (*
const range_mm)(uint8_t *work);
135 void (*
const data_ready)(uint8_t *work);
136 void (*
const range_status)(uint8_t *work);
137 void (*
const range_valid)(uint8_t *work);
138 void (*
const begin)(uint8_t *work);
139 void (*
const read_mm)(uint8_t *work);
144void protocore_vl53l0x_range_mm(uint8_t *work);
145void protocore_vl53l0x_data_ready(uint8_t *work);
146void protocore_vl53l0x_range_status(uint8_t *work);
147void protocore_vl53l0x_range_valid(uint8_t *work);
148void protocore_vl53l0x_begin(uint8_t *work);
149void protocore_vl53l0x_read_mm(uint8_t *work);
155static const Vl53l0xNs Vl53l0x __attribute__((unused)) = {
156 .range_mm = protocore_vl53l0x_range_mm,
157 .data_ready = protocore_vl53l0x_data_ready,
158 .range_status = protocore_vl53l0x_range_status,
159 .range_valid = protocore_vl53l0x_range_valid,
160 .begin = protocore_vl53l0x_begin,
161 .read_mm = protocore_vl53l0x_read_mm,
173uint8_t *protocore_vl53l0x_span(
void);
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS