SensorLib 0.5.0
Multi-platform sensor driver library for Arduino, PlatformIO, and ESP-IDF
Loading...
Searching...
No Matches
SensorQMI8658_Reg.hpp
Go to the documentation of this file.
1
30#pragma once
31
32
33#include <stdint.h>
34
35namespace QMI8658Regs
36{
37
38
39static constexpr uint8_t QMI8658_WHO_AM_I_VAL = 0x05;
40static constexpr uint8_t QMI8658_RESET_VAL = 0xB0;
41static constexpr uint8_t QMI8658_RST_RESULT_VAL = 0x80;
42
43static constexpr float QMI8658_CONSTANT_ONE_G = 9.80665f;
44
45// ==============================================
46// 0x00 (RO) - WHO_AM_I
47// ==============================================
48static constexpr uint8_t REG_WHO_AM_I = 0x00;
49static constexpr uint8_t MASK_WHO_AM_I = 0xFF;
50static constexpr uint8_t SHIFT_WHO_AM_I = 0;
51
52// ==============================================
53// 0x01 (RO) - REVISION
54// ==============================================
55static constexpr uint8_t REG_REVISION = 0x01;
56static constexpr uint8_t MASK_REVISION = 0xFF;
57static constexpr uint8_t SHIFT_REVISION = 0;
58
59// ==============================================
60// 0x02 (RW) - CTRL1 - Interface and Reset Control
61// ==============================================
62static constexpr uint8_t REG_CTRL1 = 0x02;
63static constexpr uint8_t MASK_SIM = 0x80;
64static constexpr uint8_t MASK_ADDR_AI = 0x40;
65static constexpr uint8_t MASK_BIG_ENDIAN = 0x20;
66static constexpr uint8_t MASK_I2C_WDT = 0x04;
67static constexpr uint8_t MASK_I2C_INT2 = 0x10;
68static constexpr uint8_t MASK_I2C_INT1 = 0x08;
69static constexpr uint8_t MASK_SENSOR_DISABLE = 0x01;
70static constexpr uint8_t MASK_SPI_MODE = MASK_SIM;
71static constexpr uint8_t MASK_SOFT_RESET = MASK_SENSOR_DISABLE;
72static constexpr uint8_t MASK_CTRL1_RESERVED = 0x02;
73static constexpr uint8_t SHIFT_SIM = 7;
74static constexpr uint8_t SHIFT_ADDR_AI = 6;
75static constexpr uint8_t SHIFT_BIG_ENDIAN = 5;
76static constexpr uint8_t SHIFT_I2C_WDT = 2;
77static constexpr uint8_t SHIFT_I2C_INT2 = 4;
78static constexpr uint8_t SHIFT_I2C_INT1 = 3;
79static constexpr uint8_t SHIFT_SENSOR_DISABLE = 0;
80static constexpr uint8_t SHIFT_CTRL1_RESERVED = 1;
81static constexpr uint8_t SHIFT_SPI_MODE = SHIFT_SIM;
82static constexpr uint8_t SHIFT_SOFT_RESET = 0;
83
84// ==============================================
85// 0x03 (RW) - CTRL2 - Accelerometer Control
86// ==============================================
87static constexpr uint8_t REG_CTRL2 = 0x03;
88static constexpr uint8_t MASK_ACCEL_SELF_TEST = 0x80;
89static constexpr uint8_t MASK_ACCEL_RANGE = 0x70;
90static constexpr uint8_t MASK_ACCEL_ODR = 0x0F;
91static constexpr uint8_t SHIFT_ACCEL_SELF_TEST = 7;
92static constexpr uint8_t SHIFT_ACCEL_RANGE = 4;
93static constexpr uint8_t SHIFT_ACCEL_ODR = 0;
94
95// Accelerometer Full Scale Range
96static constexpr uint8_t ACCEL_RANGE_2G = 0x00;
97static constexpr uint8_t ACCEL_RANGE_4G = 0x01;
98static constexpr uint8_t ACCEL_RANGE_8G = 0x02;
99static constexpr uint8_t ACCEL_RANGE_16G = 0x03;
100
101// Accelerometer Output Data Rate
102static constexpr uint8_t ACCEL_ODR_7174_4HZ = 0x00;
103static constexpr uint8_t ACCEL_ODR_3587_2HZ = 0x01;
104static constexpr uint8_t ACCEL_ODR_1793_6HZ = 0x02;
105static constexpr uint8_t ACCEL_ODR_896_8HZ = 0x03;
106static constexpr uint8_t ACCEL_ODR_448_4HZ = 0x04;
107static constexpr uint8_t ACCEL_ODR_224_2HZ = 0x05;
108static constexpr uint8_t ACCEL_ODR_112_1HZ = 0x06;
109static constexpr uint8_t ACCEL_ODR_56_05HZ = 0x07;
110static constexpr uint8_t ACCEL_ODR_28_025HZ = 0x08;
111static constexpr uint8_t ACCEL_ODR_14_0125HZ = 0x09;
112static constexpr uint8_t ACCEL_ODR_7_006HZ = 0x0A;
113static constexpr uint8_t ACCEL_ODR_LP_128HZ = 0x0C;
114static constexpr uint8_t ACCEL_ODR_LP_21HZ = 0x0D;
115static constexpr uint8_t ACCEL_ODR_LP_11HZ = 0x0E;
116static constexpr uint8_t ACCEL_ODR_LP_3HZ = 0x0F;
117
118// ==============================================
119// 0x04 (RW) - CTRL3 - Gyroscope Control
120// ==============================================
121static constexpr uint8_t REG_CTRL3 = 0x04;
122static constexpr uint8_t MASK_GYRO_SELF_TEST = 0x80;
123static constexpr uint8_t MASK_GYRO_RANGE = 0x70;
124static constexpr uint8_t MASK_GYRO_ODR = 0x0F;
125static constexpr uint8_t SHIFT_GYRO_SELF_TEST = 7;
126static constexpr uint8_t SHIFT_GYRO_RANGE = 4;
127static constexpr uint8_t SHIFT_GYRO_ODR = 0;
128
129// Gyroscope Full Scale Range
130static constexpr uint8_t GYRO_RANGE_16DPS = 0x00;
131static constexpr uint8_t GYRO_RANGE_32DPS = 0x01;
132static constexpr uint8_t GYRO_RANGE_64DPS = 0x02;
133static constexpr uint8_t GYRO_RANGE_128DPS = 0x03;
134static constexpr uint8_t GYRO_RANGE_256DPS = 0x04;
135static constexpr uint8_t GYRO_RANGE_512DPS = 0x05;
136static constexpr uint8_t GYRO_RANGE_1024DPS = 0x06;
137static constexpr uint8_t GYRO_RANGE_2048DPS = 0x07;
138
139// Gyroscope Output Data Rate
140static constexpr uint8_t GYRO_ODR_7174_4HZ = 0x00;
141static constexpr uint8_t GYRO_ODR_3587_2HZ = 0x01;
142static constexpr uint8_t GYRO_ODR_1793_6HZ = 0x02;
143static constexpr uint8_t GYRO_ODR_896_8HZ = 0x03;
144static constexpr uint8_t GYRO_ODR_448_4HZ = 0x04;
145static constexpr uint8_t GYRO_ODR_224_2HZ = 0x05;
146static constexpr uint8_t GYRO_ODR_112_1HZ = 0x06;
147static constexpr uint8_t GYRO_ODR_56_05HZ = 0x07;
148static constexpr uint8_t GYRO_ODR_28_025HZ = 0x08;
149static constexpr uint8_t GYRO_ODR_14_0125HZ = 0x09;
150static constexpr uint8_t GYRO_ODR_7_006HZ = 0x0A;
151
152// ==============================================
153// 0x06 (RW) - CTRL5 - Low Pass Filter Configuration
154// ==============================================
155static constexpr uint8_t REG_CTRL5 = 0x06;
156static constexpr uint8_t MASK_ACCEL_LPF_EN = 0x01;
157static constexpr uint8_t MASK_ACCEL_LPF_ODR = 0x06;
158static constexpr uint8_t MASK_GYRO_LPF_EN = 0x10;
159static constexpr uint8_t MASK_GYRO_LPF_ODR = 0x60;
160static constexpr uint8_t SHIFT_ACCEL_LPF_EN = 0;
161static constexpr uint8_t SHIFT_ACCEL_LPF_ODR = 1;
162static constexpr uint8_t SHIFT_GYRO_LPF_EN = 4;
163static constexpr uint8_t SHIFT_GYRO_LPF_ODR = 5;
164
165// LPF Mode (percentage of output data rate)
166static constexpr uint8_t LPF_MODE_0 = 0x00; // 2.66%
167static constexpr uint8_t LPF_MODE_1 = 0x01; // 3.63%
168static constexpr uint8_t LPF_MODE_2 = 0x02; // 5.39%
169static constexpr uint8_t LPF_MODE_3 = 0x03; // 13.37%
170
171// ==============================================
172// 0x08 (RW) - CTRL7 - Sensor Enable
173// ==============================================
174static constexpr uint8_t REG_CTRL7 = 0x08;
175static constexpr uint8_t MASK_ACCEL_ENABLE = 0x01;
176static constexpr uint8_t MASK_GYRO_ENABLE = 0x02;
177static constexpr uint8_t MASK_SYNC_MODE = 0x80;
178static constexpr uint8_t MASK_SYNC_DATA_SELECT = 0x40;
179static constexpr uint8_t MASK_SYNC_DATA_LATCH = 0x20;
180static constexpr uint8_t MASK_I3C_ENABLE = 0x10;
181static constexpr uint8_t SHIFT_ACCEL_ENABLE = 0;
182static constexpr uint8_t SHIFT_GYRO_ENABLE = 1;
183static constexpr uint8_t SHIFT_SYNC_MODE = 7;
184static constexpr uint8_t SHIFT_SYNC_DATA_SELECT = 6;
185static constexpr uint8_t SHIFT_SYNC_DATA_LATCH = 5;
186static constexpr uint8_t SHIFT_I3C_ENABLE = 4;
187
188// ==============================================
189// 0x09 (RW) - CTRL8 - Interrupt and Activity Configuration
190// ==============================================
191static constexpr uint8_t REG_CTRL8 = 0x09;
192static constexpr uint8_t MASK_ACTIVITY_INT_MAP = 0x40;
193static constexpr uint8_t MASK_PEDOMETER_ENABLE = 0x10;
194static constexpr uint8_t MASK_SIGNIFICANT_MOTION_EN = 0x08;
195static constexpr uint8_t MASK_NO_MOTION_ENABLE = 0x04;
196static constexpr uint8_t MASK_ANY_MOTION_ENABLE = 0x02;
197static constexpr uint8_t MASK_TAP_DETECTION_ENABLE = 0x01;
198static constexpr uint8_t SHIFT_ACTIVITY_INT_MAP = 6;
199static constexpr uint8_t SHIFT_PEDOMETER_ENABLE = 4;
200static constexpr uint8_t SHIFT_SIGNIFICANT_MOTION_EN = 3;
201static constexpr uint8_t SHIFT_NO_MOTION_ENABLE = 2;
202static constexpr uint8_t SHIFT_ANY_MOTION_ENABLE = 1;
203static constexpr uint8_t SHIFT_TAP_DETECTION_ENABLE = 0;
204
205// ==============================================
206// 0x0A (WO) - CTRL9 - Command Register
207// ==============================================
208static constexpr uint8_t REG_CTRL9 = 0x0A;
209static constexpr uint8_t MASK_CTRL9_COMMAND = 0xFF;
210static constexpr uint8_t SHIFT_CTRL9_COMMAND = 0;
211
212// CTRL9 Commands
213static constexpr uint8_t CTRL_CMD_ACK = 0x00;
214static constexpr uint8_t CTRL_CMD_RST_FIFO = 0x04;
215static constexpr uint8_t CTRL_CMD_REQ_FIFO = 0x05;
216static constexpr uint8_t CTRL_CMD_WRITE_WOM_SETTING = 0x08;
217static constexpr uint8_t CTRL_CMD_ACCEL_HOST_DELTA_OFFSET = 0x09;
218static constexpr uint8_t CTRL_CMD_GYRO_HOST_DELTA_OFFSET = 0x0A;
219static constexpr uint8_t CTRL_CMD_CONFIGURE_TAP = 0x0C;
220static constexpr uint8_t CTRL_CMD_CONFIGURE_PEDOMETER = 0x0D;
221static constexpr uint8_t CTRL_CMD_CONFIGURE_MOTION = 0x0E;
222static constexpr uint8_t CTRL_CMD_RESET_PEDOMETER = 0x0F;
223static constexpr uint8_t CTRL_CMD_COPY_USID = 0x10;
224static constexpr uint8_t CTRL_CMD_SET_RPU = 0x11;
225static constexpr uint8_t CTRL_CMD_AHB_CLOCK_GATING = 0x12;
226static constexpr uint8_t CTRL_CMD_ON_DEMAND_CALIBRATION = 0xA2;
227static constexpr uint8_t CTRL_CMD_APPLY_GYRO_GAINS = 0xAA;
228
229// ==============================================
230// 0x0B-0x12 - Calibration Registers
231// ==============================================
232static constexpr uint8_t REG_CAL1_L = 0x0B;
233static constexpr uint8_t REG_CAL1_H = 0x0C;
234static constexpr uint8_t REG_CAL2_L = 0x0D;
235static constexpr uint8_t REG_CAL2_H = 0x0E;
236static constexpr uint8_t REG_CAL3_L = 0x0F;
237static constexpr uint8_t REG_CAL3_H = 0x10;
238static constexpr uint8_t REG_CAL4_L = 0x11;
239static constexpr uint8_t REG_CAL4_H = 0x12;
240
241// ==============================================
242// 0x13 (RW) - FIFO_WTM_TH - FIFO Watermark Threshold
243// ==============================================
244static constexpr uint8_t REG_FIFO_WTM_TH = 0x13;
245static constexpr uint8_t MASK_FIFO_WTM_TH = 0xFF;
246static constexpr uint8_t SHIFT_FIFO_WTM_TH = 0;
247
248// ==============================================
249// 0x14 (RW) - FIFO_CTRL - FIFO Control
250// ==============================================
251static constexpr uint8_t REG_FIFO_CTRL = 0x14;
252static constexpr uint8_t MASK_FIFO_MODE = 0x03;
253static constexpr uint8_t MASK_FIFO_SAMPLES = 0x0C;
254static constexpr uint8_t SHIFT_FIFO_MODE = 0;
255static constexpr uint8_t SHIFT_FIFO_SAMPLES = 2;
256
257static constexpr uint8_t FIFO_MODE_BYPASS = 0x00;
258static constexpr uint8_t FIFO_MODE_FIFO = 0x01;
259static constexpr uint8_t FIFO_MODE_STREAM = 0x02;
260
261static constexpr uint8_t FIFO_SAMPLES_16 = 0x00;
262static constexpr uint8_t FIFO_SAMPLES_32 = 0x01;
263static constexpr uint8_t FIFO_SAMPLES_64 = 0x02;
264static constexpr uint8_t FIFO_SAMPLES_128 = 0x03;
265
266// ==============================================
267// 0x15-0x16 - FIFO Status Registers
268// ==============================================
269static constexpr uint8_t REG_FIFO_SMPL_CNT_L = 0x15;
270static constexpr uint8_t REG_FIFO_SMPL_CNT_H = 0x16;
271static constexpr uint8_t REG_FIFO_STATUS = 0x16;
272static constexpr uint8_t MASK_FIFO_EMPTY = 0x10;
273static constexpr uint8_t MASK_FIFO_OVERFLOW = 0x20;
274static constexpr uint8_t MASK_FIFO_WTM_HIT = 0x40;
275static constexpr uint8_t MASK_FIFO_FULL = 0x80;
276
277// ==============================================
278// 0x18 (RO) - FIFO_DATA - FIFO Data Output
279// ==============================================
280static constexpr uint8_t REG_FIFO_DATA = 0x17;
281
282// ==============================================
283// 0x2D (RO) - STATUS_INT - Interrupt Status
284// ==============================================
285static constexpr uint8_t REG_STATUS_INT = 0x2D;
286static constexpr uint8_t MASK_INT_AVAIL = 0x01;
287static constexpr uint8_t MASK_INT_LOCKED = 0x02;
288static constexpr uint8_t MASK_INT_CTRL9_DONE = 0x80;
289static constexpr uint8_t SHIFT_INT_AVAIL = 0;
290static constexpr uint8_t SHIFT_INT_LOCKED = 1;
291static constexpr uint8_t SHIFT_INT_CTRL9_DONE = 7;
292
293// ==============================================
294// 0x2E (RO) - STATUS0 - Sensor Data Status
295// ==============================================
296static constexpr uint8_t REG_STATUS0 = 0x2E;
297static constexpr uint8_t MASK_ACCEL_DATA_RDY = 0x01;
298static constexpr uint8_t MASK_GYRO_DATA_RDY = 0x02;
299static constexpr uint8_t SHIFT_ACCEL_DATA_RDY = 0;
300static constexpr uint8_t SHIFT_GYRO_DATA_RDY = 1;
301
302// ==============================================
303// 0x2F (RO) - STATUS1 - Activity Status
304// ==============================================
305static constexpr uint8_t REG_STATUS1 = 0x2F;
306static constexpr uint8_t MASK_TAP_EVENT = 0x02;
307static constexpr uint8_t MASK_WOM_EVENT = 0x04;
308static constexpr uint8_t MASK_PEDOMETER_EVENT = 0x10;
309static constexpr uint8_t MASK_ANY_MOTION_EVENT = 0x20;
310static constexpr uint8_t MASK_NO_MOTION_EVENT = 0x40;
311static constexpr uint8_t MASK_SIGNIFICANT_MOTION_EVENT = 0x80;
312static constexpr uint8_t SHIFT_TAP_EVENT = 1;
313static constexpr uint8_t SHIFT_WOM_EVENT = 2;
314static constexpr uint8_t SHIFT_PEDOMETER_EVENT = 4;
315static constexpr uint8_t SHIFT_ANY_MOTION_EVENT = 5;
316static constexpr uint8_t SHIFT_NO_MOTION_EVENT = 6;
317static constexpr uint8_t SHIFT_SIGNIFICANT_MOTION_EVENT = 7;
318
319// ==============================================
320// 0x30-0x32 - Timestamp Registers
321// ==============================================
322static constexpr uint8_t REG_TIMESTAMP_L = 0x30;
323static constexpr uint8_t REG_TIMESTAMP_M = 0x31;
324static constexpr uint8_t REG_TIMESTAMP_H = 0x32;
325
326// ==============================================
327// 0x33-0x40 - Sensor Data Registers
328// ==============================================
329static constexpr uint8_t REG_TEMPERATURE_L = 0x33;
330static constexpr uint8_t REG_TEMPERATURE_H = 0x34;
331static constexpr uint8_t REG_AX_L = 0x35;
332static constexpr uint8_t REG_AX_H = 0x36;
333static constexpr uint8_t REG_AY_L = 0x37;
334static constexpr uint8_t REG_AY_H = 0x38;
335static constexpr uint8_t REG_AZ_L = 0x39;
336static constexpr uint8_t REG_AZ_H = 0x3A;
337static constexpr uint8_t REG_GX_L = 0x3B;
338static constexpr uint8_t REG_GX_H = 0x3C;
339static constexpr uint8_t REG_GY_L = 0x3D;
340static constexpr uint8_t REG_GY_H = 0x3E;
341static constexpr uint8_t REG_GZ_L = 0x3F;
342static constexpr uint8_t REG_GZ_H = 0x40;
343
344// ==============================================
345// 0x46 (RO) - COD_STATUS - Calibration On Demand Status
346// ==============================================
347static constexpr uint8_t REG_COD_STATUS = 0x46;
348static constexpr uint8_t MASK_COD_FAIL = 0x01;
349static constexpr uint8_t MASK_COD_GYRO_ENABLED_ERR = 0x02;
350static constexpr uint8_t MASK_COD_GYRO_STARTUP_ERR = 0x04;
351static constexpr uint8_t MASK_COD_ACCEL_ERR = 0x08;
352static constexpr uint8_t MASK_COD_GYRO_Z_HIGH_ERR = 0x10;
353static constexpr uint8_t MASK_COD_GYRO_Z_LOW_ERR = 0x20;
354static constexpr uint8_t MASK_COD_GYRO_Y_HIGH_ERR = 0x40;
355static constexpr uint8_t MASK_COD_GYRO_Y_LOW_ERR = 0x80;
356
357// ==============================================
358// 0x49-0x56 - Self-Test / Calibration Data Registers
359// ==============================================
360static constexpr uint8_t REG_DQW_L = 0x49;
361static constexpr uint8_t REG_DQW_H = 0x4A;
362static constexpr uint8_t REG_DQX_L = 0x4B;
363static constexpr uint8_t REG_DQX_H = 0x4C;
364static constexpr uint8_t REG_DQY_L = 0x4D;
365static constexpr uint8_t REG_DQY_H = 0x4E;
366static constexpr uint8_t REG_DQZ_L = 0x4F;
367static constexpr uint8_t REG_DQZ_H = 0x50;
368static constexpr uint8_t REG_DVX_L = 0x51;
369static constexpr uint8_t REG_DVX_H = 0x52;
370static constexpr uint8_t REG_DVY_L = 0x53;
371static constexpr uint8_t REG_DVY_H = 0x54;
372static constexpr uint8_t REG_DVZ_L = 0x55;
373static constexpr uint8_t REG_DVZ_H = 0x56;
374
375// ==============================================
376// 0x59 (RO) - TAP_STATUS - Tap Detection Status
377// ==============================================
378static constexpr uint8_t REG_TAP_STATUS = 0x59;
379static constexpr uint8_t MASK_TAP_TYPE = 0x03;
380static constexpr uint8_t MASK_TAP_AXIS = 0x30;
381static constexpr uint8_t MASK_TAP_DIRECTION = 0x80;
382static constexpr uint8_t SHIFT_TAP_TYPE = 0;
383static constexpr uint8_t SHIFT_TAP_AXIS = 4;
384static constexpr uint8_t SHIFT_TAP_DIRECTION = 7;
385
386static constexpr uint8_t TAP_TYPE_NONE = 0x00;
387static constexpr uint8_t TAP_TYPE_SINGLE = 0x01;
388static constexpr uint8_t TAP_TYPE_DOUBLE = 0x02;
389
390// ==============================================
391// 0x5A-0x5C - Step Counter Registers
392// ==============================================
393static constexpr uint8_t REG_STEP_CNT_L = 0x5A;
394static constexpr uint8_t REG_STEP_CNT_M = 0x5B;
395static constexpr uint8_t REG_STEP_CNT_H = 0x5C;
396
397// ==============================================
398// 0x60 (WO) - RESET - Reset Register
399// ==============================================
400static constexpr uint8_t REG_RESET = 0x60;
401static constexpr uint8_t MASK_RESET = 0xFF;
402
403// ==============================================
404// 0x4D (RO) - RST_RESULT - Reset Result
405// ==============================================
406static constexpr uint8_t REG_RST_RESULT = 0x4D;
407static constexpr uint8_t MASK_RST_RESULT = 0x80;
408
409// ==============================================
410// Constants for scale calculations
411// ==============================================
412static constexpr float ACCEL_SCALE_2G = 2.0f / 32768.0f;
413static constexpr float ACCEL_SCALE_4G = 4.0f / 32768.0f;
414static constexpr float ACCEL_SCALE_8G = 8.0f / 32768.0f;
415static constexpr float ACCEL_SCALE_16G = 16.0f / 32768.0f;
416
417static constexpr float GYRO_SCALE_16DPS = 16.0f / 32768.0f;
418static constexpr float GYRO_SCALE_32DPS = 32.0f / 32768.0f;
419static constexpr float GYRO_SCALE_64DPS = 64.0f / 32768.0f;
420static constexpr float GYRO_SCALE_128DPS = 128.0f / 32768.0f;
421static constexpr float GYRO_SCALE_256DPS = 256.0f / 32768.0f;
422static constexpr float GYRO_SCALE_512DPS = 512.0f / 32768.0f;
423static constexpr float GYRO_SCALE_1024DPS = 1024.0f / 32768.0f;
424static constexpr float GYRO_SCALE_2048DPS = 2048.0f / 32768.0f;
425
426// ==============================================
427// Motion Control Configuration Masks
428// ==============================================
429static constexpr uint8_t MASK_ANY_MOTION_X_EN = 0x01;
430static constexpr uint8_t MASK_ANY_MOTION_Y_EN = 0x02;
431static constexpr uint8_t MASK_ANY_MOTION_Z_EN = 0x04;
432static constexpr uint8_t MASK_ANY_MOTION_LOGIC = 0x08;
433static constexpr uint8_t MASK_NO_MOTION_X_EN = 0x10;
434static constexpr uint8_t MASK_NO_MOTION_Y_EN = 0x20;
435static constexpr uint8_t MASK_NO_MOTION_Z_EN = 0x40;
436static constexpr uint8_t MASK_NO_MOTION_LOGIC = 0x80;
437
438// ==============================================
439// Tap Detection Priority
440// ==============================================
441static constexpr uint8_t TAP_PRIORITY_X_GT_Y_GT_Z = 0x00;
442static constexpr uint8_t TAP_PRIORITY_X_GT_Z_GT_Y = 0x01;
443static constexpr uint8_t TAP_PRIORITY_Y_GT_X_GT_Z = 0x02;
444static constexpr uint8_t TAP_PRIORITY_Y_GT_Z_GT_X = 0x03;
445static constexpr uint8_t TAP_PRIORITY_Z_GT_X_GT_Y = 0x04;
446static constexpr uint8_t TAP_PRIORITY_Z_GT_Y_GT_X = 0x05;
447} // namespace QMI8658Regs