1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
|
//*****************************************************************************
//
// hw_kxti9.h - Macros used when accessing the Kionix KXTI9 accelerometer.
//
// Copyright (c) 2013-2014 Texas Instruments Incorporated. All rights reserved.
// Software License Agreement
//
// Texas Instruments (TI) is supplying this software for use solely and
// exclusively on TI's microcontroller products. The software is owned by
// TI and/or its suppliers, and is protected under applicable copyright
// laws. You may not combine this software with "viral" open-source
// software in order to form a larger program.
//
// THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS.
// NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT
// NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. TI SHALL NOT, UNDER ANY
// CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR CONSEQUENTIAL
// DAMAGES, FOR ANY REASON WHATSOEVER.
//
// This is part of revision 2.1.0.12573 of the Tiva Firmware Development Package.
//
//*****************************************************************************
#ifndef __SENSORLIB_HW_KXTI9_H__
#define __SENSORLIB_HW_KXTI9_H__
//*****************************************************************************
//
// The following are defines for the KXTI9 register addresses.
//
//*****************************************************************************
#define KXTI9_O_XOUT_HFP_L 0x00 // X-axis high-pass data LSB
// register
#define KXTI9_O_XOUT_HFP_H 0x01 // X-axis high-pass data MSB
// register
#define KXTI9_O_YOUT_HFP_L 0x02 // Y-axis high-pass data LSB
// register
#define KXTI9_O_YOUT_HFP_H 0x03 // Y-axis high-pass data MSB
// register
#define KXTI9_O_ZOUT_HFP_L 0x04 // Z-axis high-pass data LSB
// register
#define KXTI9_O_ZOUT_HFP_H 0x05 // Z-axis high-pass data MSB
// register
#define KXTI9_O_XOUT_L 0x06 // X-axis data LSB register
#define KXTI9_O_XOUT_H 0x07 // X-axis data MSB register
#define KXTI9_O_YOUT_L 0x08 // Y-axis data LSB register
#define KXTI9_O_YOUT_H 0x09 // Y-axis data MSB register
#define KXTI9_O_ZOUT_L 0x0A // Z-axis data LSB register
#define KXTI9_O_ZOUT_H 0x0B // Z-axis data MSB register
#define KXTI9_O_DCST_RESP 0x0C // Digital Control Status register
#define KXTI9_O_WHO_AM_I 0x0F // Who Am I register
#define KXTI9_O_TILT_POS_CUR 0x10 // Current tilt position register
#define KXTI9_O_TILT_POS_PRE 0x11 // Previous tilt position register
#define KXTI9_O_INT_SRC1 0x15 // Interrupt source register 1
#define KXTI9_O_INT_SRC2 0x16 // Interrupt source register2
#define KXTI9_O_STATUS 0x18 // Status register
#define KXTI9_O_INT_REL 0x1A // Interrupt clear/release register
#define KXTI9_O_CTRL1 0x1B // Control register 1
#define KXTI9_O_CTRL2 0x1C // Control register 2
#define KXTI9_O_CTRL3 0x1D // Control register 3
#define KXTI9_O_INT_CTRL1 0x1E // Interrupt control register 1
#define KXTI9_O_INT_CTRL2 0x1F // Interrupt control register 2
#define KXTI9_O_INT_CTRL3 0x20 // Interrupt control register 3
#define KXTI9_O_DATA_CTRL 0x21 // Data control register
#define KXTI9_O_TILT_TIMER 0x28 // Tilt timer register
#define KXTI9_O_WUF_TIMER 0x29 // Wake-up timer register
#define KXTI9_O_TDT_TIMER 0x2B // TDT timer register
#define KXTI9_O_TDT_H_THRESH 0x2C // Jerk threshold high register
#define KXTI9_O_TDT_L_THRESH 0x2D // Jerk threshold low register
#define KXTI9_O_TDT_TAP_TIMER 0x2E // TDT tap timer register
#define KXTI9_O_TDT_TOTAL_TIMER 0x2F // TDT double tap timer register
#define KXTI9_O_TDT_LATENCY_TIMER \
0x30 // TDT tap latency timer register
#define KXTI9_O_TDT_WINDOW_TIMER \
0x31 // TDT tap window timer register
#define KXTI9_O_BUF_CTRL1 0x32 // Buffer control 1 register
#define KXTI9_O_BUF_CTRL2 0x33 // Buffer control 2 register
#define KXTI9_O_STATUS1 0x34 // Buffer status 1 register
#define KXTI9_O_STATUS2 0x35 // Buffer status 2 register
#define KXTI9_O_BUF_CLEAR 0x36 // Buffer status clear register
#define KXTI9_O_SELF_TEST 0x3A // Self-test register
#define KXTI9_O_WUF_THRESH 0x5A // Wake-up threshold register
#define KXTI9_O_TILT_ANGLE 0x5C // Tilt angle register
#define KXTI9_O_HYST_SET 0x5F // Hysteresis set register
#define KXTI9_O_BUF_READ 0x7F // Buffer read register
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_XOUT_HPF_L
// register.
//
//*****************************************************************************
#define KXTI9_XOUT_HPF_L_M 0xF0 // Bits [3:0] of high-pass filtered
// X-axis data
#define KXTI9_XOUT_HPF_L_S 4
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_XOUT_HPF_H
// register.
//
//*****************************************************************************
#define KXTI9_XOUT_HPF_H_M 0xFF // Bits [11:4] of high-pass
// filtered X-axis data
#define KXTI9_XOUT_HPF_H_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_YOUT_HPF_L
// register.
//
//*****************************************************************************
#define KXTI9_YOUT_HPF_L_M 0xF0 // Bits [3:0] of high-pass filtered
// Y-axis data
#define KXTI9_YOUT_HPF_L_S 4
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_YOUT_HPF_H
// register.
//
//*****************************************************************************
#define KXTI9_YOUT_HPF_H_M 0xFF // Bits [11:4] of high-pass
// filtered Y-axis data
#define KXTI9_YOUT_HPF_H_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_ZOUT_HPF_L
// register.
//
//*****************************************************************************
#define KXTI9_ZOUT_HPF_L_M 0xF0 // Bits [3:0] of high-pass filtered
// Z-axis data
#define KXTI9_ZOUT_HPF_L_S 4
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_ZOUT_HPF_H
// register.
//
//*****************************************************************************
#define KXTI9_ZOUT_HPF_H_M 0xFF // Bits [11:4] of high-pass
// filtered Z-axis data
#define KXTI9_ZOUT_HPF_H_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_XOUT_L register.
//
//*****************************************************************************
#define KXTI9_XOUT_L_M 0xF0 // Bits [3:0] of X-axis data
#define KXTI9_XOUT_L_S 4
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_XOUT_H register.
//
//*****************************************************************************
#define KXTI9_XOUT_H_M 0xFF // Bits [11:4] of X-axis data
#define KXTI9_XOUT_H_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_YOUT_L register.
//
//*****************************************************************************
#define KXTI9_YOUT_L_M 0xF0 // Bits [3:0] of Y-axis data
#define KXTI9_YOUT_L_S 4
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_YOUT_H register.
//
//*****************************************************************************
#define KXTI9_YOUT_H_M 0xFF // Bits [11:4] of Y-axis data
#define KXTI9_YOUT_H_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_ZOUT_L register.
//
//*****************************************************************************
#define KXTI9_ZOUT_L_M 0xF0 // Bits [3:0] of Z-axis data
#define KXTI9_ZOUT_L_S 4
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_ZOUT_H register.
//
//*****************************************************************************
#define KXTI9_ZOUT_H_M 0xFF // Bits [11:4] of Z-axis data
#define KXTI9_ZOUT_H_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_DCST_RESP
// register.
//
//*****************************************************************************
#define KXTI9_DCST_RESP_M 0xFF // Check field
#define KXTI9_DCST_RESP_DEF 0x55 // Default response
#define KXTI9_DCST_RESP_INIT 0xAA // Post-initialization response
#define KXTI9_DCST_RESP_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_WHO_AM_I
// register.
//
//*****************************************************************************
#define KXTI9_DCST_RESP_M 0xFF // Identification field
#define KXTI9_WHO_AM_I_KXTI9 0x04 // KXTI9
#define KXTI9_WHO_AM_I_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_TILT_POS_CUR
// register.
//
//*****************************************************************************
#define KXTI9_TILT_POS_CUR_LE 0x20 // Left state (X-)
#define KXTI9_TILT_POS_CUR_RI 0x10 // Right state (X+)
#define KXTI9_TILT_POS_CUR_DO 0x08 // Down state (Y-)
#define KXTI9_TILT_POS_CUR_UP 0x04 // Up state (Y+)
#define KXTI9_TILT_POS_CUR_FD 0x02 // Face-down state (Z-)
#define KXTI9_TILT_POS_CUR_FU 0x01 // Face-up state (Z+)
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_TILT_POS_PRE
// register.
//
//*****************************************************************************
#define KXTI9_TILT_POS_PRE_LE 0x20 // Left state (X-)
#define KXTI9_TILT_POS_PRE_RI 0x10 // Right state (X+)
#define KXTI9_TILT_POS_PRE_DO 0x08 // Down state (Y-)
#define KXTI9_TILT_POS_PRE_UP 0x04 // Up state (Y+)
#define KXTI9_TILT_POS_PRE_FD 0x02 // Face-down state (Z-)
#define KXTI9_TILT_POS_PRE_FU 0x01 // Face-up state (Z+)
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_INT_SRC1
// register.
//
//*****************************************************************************
#define KXTI9_INT_SRC1_TLE 0x20 // X negative (X-) reported
#define KXTI9_INT_SRC1_TRI 0x10 // X positive (X+) reported
#define KXTI9_INT_SRC1_TDO 0x08 // Y negative (Y-) reported
#define KXTI9_INT_SRC1_TUP 0x04 // Y positive (Y+) reported
#define KXTI9_INT_SRC1_TFD 0x02 // Z negative (Z-) reported
#define KXTI9_INT_SRC1_TFU 0x01 // Z positive (Z+) reported
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_INT_SRC2
// register.
//
//*****************************************************************************
#define KXTI9_INT_SRC2_WMI 0x20 // Buffer sample threshold reached
#define KXTI9_INT_SRC2_DRDY 0x10 // New accel data ready
#define KXTI9_INT_SRC2_TDTS_M 0x0C // Tap event detected
#define KXTI9_INT_SRC2_TDTS_NONE \
0x00 // No tap event
#define KXTI9_INT_SRC2_TDTS_SINGLE \
0x01 // Single tap event
#define KXTI9_INT_SRC2_TDTS_DOUBLE \
0x02 // Double tap event
#define KXTI9_INT_SRC2_TDTS_DIRECTIONAL \
0x03 // Double tap event
#define KXTI9_INT_SRC2_WUFS 0x02 // Wake-up
#define KXTI9_INT_SRC2_TPS 0x01 // Tilt position change
#define KXTI9_INT_SRC2_S 2
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_STATUS register.
//
//*****************************************************************************
#define KXTI9_STATUS_INT 0x10 // Interrupt event
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_INT_REL
// register.
//
//*****************************************************************************
#define KXTI9_INT_REL_M 0xFF // Data is unpredictable
#define KXTI9_INT_REL_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_CTRL1 register.
//
//*****************************************************************************
#define KXTI9_CTRL1_PC1 0x80 // Operating mode
#define KXTI9_CTRL1_RES 0x40 // Performance (resolution) mode
#define KXTI9_CTRL1_DRDYE 0x20 // New data interrupt enable
#define KXTI9_CTRL1_GSEL_M 0x18 // Acceleration range
#define KXTI9_CTRL1_GSEL_2G 0x00 // +/-2g
#define KXTI9_CTRL1_GSEL_4G 0x01 // +/-4g
#define KXTI9_CTRL1_GSEL_8G 0x02 // +/-8g
#define KXTI9_CTRL1_TDTE 0x04 // Directional tap enable
#define KXTI9_CTRL1_WUFE 0x02 // Wake-up enable
#define KXTI9_CTRL1_TPE 0x01 // Tilt position enable
#define KXTI9_CTRL1_GSEL_S 3
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_CTRL2 register.
//
//*****************************************************************************
#define KXTI9_CTRL2_OTDTH 0x80 // Output data rate selection for
// directional tap
#define KXTI9_CTRL2_LEM 0x20 // Left state tilt enable
#define KXTI9_CTRL2_RIM 0x10 // Right state tilt enable
#define KXTI9_CTRL2_DOM 0x08 // Down state tilt enable
#define KXTI9_CTRL2_UPM 0x04 // Up state tilt enable
#define KXTI9_CTRL2_FDM 0x02 // Face-down state tilt enable
#define KXTI9_CTRL2_FUM 0x01 // Face-up state tilt enable
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_CTRL3 register.
//
//*****************************************************************************
#define KXTI9_CTRL3_SRST 0x80 // Initiate software reset
#define KXTI9_CTRL3_OTP_M 0x60 // Output data rate for tilt
// position
#define KXTI9_CTRL3_OTP_1_6HZ 0x00 // Data rate is 1.6Hz
#define KXTI9_CTRL3_OTP_6_3HZ 0x01 // Data rate is 6.3Hz
#define KXTI9_CTRL3_OTP_12_5HZ 0x02 // Data rate is 12.5Hz
#define KXTI9_CTRL3_OTP_50HZ 0x03 // Data rate is 50Hz
#define KXTI9_CTRL3_OWUF_M 0x60 // Output data rate for motion
// detection and high-pass outputs
#define KXTI9_CTRL3_OWUF_25HZ 0x00 // Data rate is 25Hz
#define KXTI9_CTRL3_OWUF_50HZ 0x01 // Data rate is 50Hz
#define KXTI9_CTRL3_OWUF_100HZ 0x02 // Data rate is 100Hz
#define KXTI9_CTRL3_OWUF_200HZ 0x03 // Data rate is 200Hz
#define KXTI9_CTRL3_DCST 0x10 // Digital communication self-test
#define KXTI9_CTRL3_OTDT_M 0x0C // Encoding values change based on
// value of OTDTH bit
#define KXTI9_CTRL3_OTDT_0 0x00 // Encoding 0 is 50Hz or 12.5Hz
#define KXTI9_CTRL3_OTDT_1 0x01 // Encoding 1 is 100Hz or 25Hz
#define KXTI9_CTRL3_OTDT_2 0x02 // Encoding 2 is 200Hz or 800Hz
#define KXTI9_CTRL3_OTDT_3 0x03 // Encoding 3 is 400Hz or 1600Hz
#define KXTI9_CTRL3_OTP_S 5
#define KXTI9_CTRL3_OTDT_S 2
#define KXTI9_CTRL3_OWUF_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_INT_CTRL1
// register.
//
//*****************************************************************************
#define KXTI9_INT_CTRL1_IEN 0x20 // Interrupt pin enable
#define KXTI9_INT_CTRL1_IEA 0x10 // Interrupt pin polarity
#define KXTI9_INT_CTRL1_IEL 0x08 // Interrupt pin response
#define KXTI9_INT_CTRL1_IEU 0x04 // Interrupt pin alternative
// response
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_INT_CTRL2
// register.
//
//*****************************************************************************
#define KXTI9_INT_CTRL2_XBW 0x80 // X-axis motion interrupt enable
#define KXTI9_INT_CTRL2_YBW 0x40 // Y-axis motion interrupt enable
#define KXTI9_INT_CTRL2_ZBW 0x20 // Z-axis motion interrupt enable
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_INT_CTRL3
// register.
//
//*****************************************************************************
#define KXTI9_INT_CTRL3_TMEN 0x40 // Tap masking scheme enable
#define KXTI9_INT_CTRL3_TLEM 0x20 // X negative interrupt enable
#define KXTI9_INT_CTRL3_TRIM 0x10 // X positive interrupt enable
#define KXTI9_INT_CTRL3_TDOM 0x08 // Y negative interrupt enable
#define KXTI9_INT_CTRL3_TUPM 0x04 // Y positive interrupt enable
#define KXTI9_INT_CTRL3_TFDM 0x02 // Z negative interrupt enable
#define KXTI9_INT_CTRL3_TFUM 0x01 // Z positive interrupt enable
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_DATA_CTRL
// register.
//
//*****************************************************************************
#define KXTI9_DATA_CTRL_HPFRO_M 0x30 // High-pass filter roll-off
// frequency
#define KXTI9_DATA_CTRL_HPFRO_50HZ \
0x00 // Roll-off at 50Hz
#define KXTI9_DATA_CTRL_HPFRO_100HZ \
0x01 // Roll-off at 100Hz
#define KXTI9_DATA_CTRL_HPFRO_200HZ \
0x02 // Roll-off at 200Hz
#define KXTI9_DATA_CTRL_HPFRO_400HZ \
0x03 // Roll-off at 400Hz
#define KXTI9_DATA_CTRL_OSA_M 0x07 // Output data rate and roll-off
// for low-pass filter outputs
#define KXTI9_DATA_CTRL_OSA_12_5HZ \
0x00 // 12.5Hz data rate, 6.25Hz LPF
// roll-off
#define KXTI9_DATA_CTRL_OSA_25HZ \
0x01 // 25Hz data rate, 12.5Hz LPF
// roll-off
#define KXTI9_DATA_CTRL_OSA_50HZ \
0x02 // 50Hz data rate, 25Hz LPF
// roll-off
#define KXTI9_DATA_CTRL_OSA_100HZ \
0x03 // 100Hz data rate, 50Hz LPF
// roll-off
#define KXTI9_DATA_CTRL_OSA_200HZ \
0x04 // 200Hz data rate, 100Hz LPF
// roll-off
#define KXTI9_DATA_CTRL_OSA_400HZ \
0x05 // 400Hz data rate, 200Hz LPF
// roll-off
#define KXTI9_DATA_CTRL_OSA_800HZ \
0x06 // 800Hz data rate, 400Hz LPF
// roll-off
#define KXTI9_DATA_CTRL_HPFRO_S 4
#define KXTI9_DATA_CTRL_OSA_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_TILT_TIMER
// register.
//
//*****************************************************************************
#define KXTI9_TILT_TIMER_M 0xFF // Initial timer count
#define KXTI9_TILT_TIMER_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_WUF_TIMER
// register.
//
//*****************************************************************************
#define KXTI9_WUF_TIMER_M 0xFF // Initial timer count
#define KXTI9_WUF_TIMER_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_TDT_TIMER
// register.
//
//*****************************************************************************
#define KXTI9_TDT_TIMER_M 0xFF // Initial timer count
#define KXTI9_TDT_TIMER_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_TDT_H_THRESH
// register.
//
//*****************************************************************************
#define KXTI9_TDT_H_THRESH_M 0xFF // Threshold high value
#define KXTI9_TDT_H_THRESH_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_TDT_L_THRESH
// register.
//
//*****************************************************************************
#define KXTI9_TDT_L_THRESH_M 0xFF // Threshold low value
#define KXTI9_TDT_L_THRESH_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_TDT_TAP_TIMER
// register.
//
//*****************************************************************************
#define KXTI9_TDT_TAP_TIMER_M 0xFF // Tap event counter
#define KXTI9_TDT_TAP_TIMER_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_TDT_TOTAL_TIMER
// register.
//
//*****************************************************************************
#define KXTI9_TDT_TOTAL_TIMER_M 0xFF // Double tap event counter
#define KXTI9_TDT_TOTAL_TIMER_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the
// KXTI9_O_TDT_LATENCY_TIMER register.
//
//*****************************************************************************
#define KXTI9_TDT_LATENCY_TIMER_M \
0xFF // Tap event latency counter
#define KXTI9_TDT_LATENCY_TIMER_S \
0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_TDT_WINDOW_TIMER
// register.
//
//*****************************************************************************
#define KXTI9_TDT_WINDOW_TIMER_M \
0xFF // Tap event window counter
#define KXTI9_TDT_WINDOW_TIMER_S \
0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_BUF_CTRL1
// register.
//
//*****************************************************************************
#define KXTI9_BUF_CTRL1_M 0x7F // Buffer sample threshold
#define KXTI9_BUF_CTRL1_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_BUF_CTRL2
// register.
//
//*****************************************************************************
#define KXTI9_BUF_CTRL2_BUFE 0x80 // Buffer enable
#define KXTI9_BUF_CTRL2_BUF_RES 0x40 // Buffer resolution
#define KXTI9_BUF_CTRL2_BUF_M_M 0x03 // Buffer mode
#define KXTI9_BUF_CTRL2_BUF_M_FIFO \
0x00 // FIFO mode
#define KXTI9_BUF_CTRL2_BUF_M_STREAM \
0x01 // Stream mode
#define KXTI9_BUF_CTRL2_BUF_M_TRIG \
0x02 // Trigger mode
#define KXTI9_BUF_CTRL2_BUF_M_FILO \
0x03 // FILO mode
#define KXTI9_BUF_CTRL2_BUF_M_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_STATUS1
// register.
//
//*****************************************************************************
#define KXTI9_STATUS1_SMP_LEV_M 0xFF // Number of bytes in sample buffer
#define KXTI9_STATUS1_SMP_LEV_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_STATUS2
// register.
//
//*****************************************************************************
#define KXTI9_STATUS2_BUF_TRIG 0x80 // Trigger mode status
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_BUF_CLEAR
// register.
//
//*****************************************************************************
#define KXTI9_BUF_CLEAR_M 0xFF // Data is unpredictable
#define KXTI9_BUF_CLEAR_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_SELF_TEST
// register.
//
//*****************************************************************************
#define KXTI9_SELF_TEST_M 0xFF // Writing 0xCA enables MEMS
// self-test
#define KXTI9_SELF_TEST_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_WUF_THRESH
// register.
//
//*****************************************************************************
#define KXTI9_WUF_THRESH_M 0xFF // Acceleration wake-up threshold
#define KXTI9_WUF_THRESH_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_TILT_ANGLE
// register.
//
//*****************************************************************************
#define KXTI9_TILT_ANGLE_M 0xFF // Tilt angle threshold
#define KXTI9_TILT_ANGLE_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_HYST_SET
// register.
//
//*****************************************************************************
#define KXTI9_HYST_SET_RES_M 0xE0 // Factory set value - do not
// change
#define KXTI9_HYST_SET_HYST_M 0x1F // Hysteresis angle
#define KXTI9_HYST_SET_RES_S 5
#define KXTI9_HYST_SET_HYST_S 0
//*****************************************************************************
//
// The following are defines for the bit fields in the KXTI9_O_BUF_READ
// register.
//
//*****************************************************************************
#define KXTI9_BUF_READ_M 0xFF // Read data from buffer
#define KXTI9_BUF_READ_S 0
#endif // __SENSORLIB_HW_KXTI9_H__
|