Skip to content

Commit 56e34a3

Browse files
committed
Add getRawAccelRegisterData and getRawAccelBufferData
1 parent e5d5628 commit 56e34a3

File tree

4 files changed

+295
-154
lines changed

4 files changed

+295
-154
lines changed

examples/example3_buffer/example3_buffer.ino

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ void setup()
8282

8383
kxAccel.setBufferResolution(); // Change sample resolution to 16 bit, 8 bit by default.
8484
// This will change how many samples can be held in buffer.
85+
// Comment the above line if you want to try using 8-bit data.
8586

8687
// kxAccel.clearBuffer(); // Clear the buffer
8788
// kxAccel.getSampleLevel(); // Get the number of samples in the buffer. This number
@@ -97,16 +98,47 @@ void setup()
9798
void loop()
9899
{
99100

100-
// getAccelData will return false if there is no data in the buffer
101-
if (kxAccel.getAccelData(&myData) == true)
101+
// We could use the KX13X interrupt pin and dataReadyPin to indicate when data is ready.
102+
// But we can also use getSampleLevel. getSampleLevel will return how much data is in the buffer.
103+
if (kxAccel.getSampleLevel() > 0)
102104
{
105+
/*
106+
// getAccelData is slow as it manually checks if the buffer is being used
107+
// and if the data resolution is 16-bit or 8-bit.
108+
if (kxAccel.getAccelData(&myData) == true)
109+
{
110+
Serial.println();
111+
Serial.print("X: ");
112+
Serial.print(myData.xData, 4);
113+
Serial.print(" Y: ");
114+
Serial.print(myData.yData, 4);
115+
Serial.print(" Z: ");
116+
Serial.print(myData.zData, 4);
117+
Serial.println();
118+
}
119+
*/
103120

104-
Serial.print("X: ");
105-
Serial.print(myData.xData, 4);
106-
Serial.print(" Y: ");
107-
Serial.print(myData.yData, 4);
108-
Serial.print(" Z: ");
109-
Serial.print(myData.zData, 4);
110-
Serial.println();
121+
// We can read the data more quickly by calling getRawAccelBufferData because we know
122+
// the buffer is being used and what the data resolution is.
123+
// The default buffer resolution is 8-bit. It will be 16-bit because we called setBufferResolution above.
124+
// If you comment setBufferResolution, change the '1' to a '0' for 8-bit data.
125+
rawOutputData myRawData;
126+
if (kxAccel.getRawAccelBufferData(&myRawData, 1) == true) // Change the '1' to a '0' for 8-bit data.
127+
{
128+
kxAccel.convAccelData(&myData, &myRawData); // Manually convert the raw data to floating point
129+
Serial.println();
130+
Serial.print("X: ");
131+
Serial.print(myData.xData, 4);
132+
Serial.print(" Y: ");
133+
Serial.print(myData.yData, 4);
134+
Serial.print(" Z: ");
135+
Serial.print(myData.zData, 4);
136+
Serial.println();
137+
}
138+
}
139+
else
140+
{
141+
Serial.print("."); // If the data rate is 50Hz (default), we'll expect to see ~20 dots between samples
142+
delay(1); // Wait 1ms
111143
}
112144
}

keywords.txt

Lines changed: 149 additions & 120 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,84 @@
11
==================================
22
CLASS
33
==================================
4-
QwiicKX13xCore KEYWORD1
4+
SparkFun_KX134 KEYWORD1
5+
SparkFun_KX134_SPI KEYWORD1
6+
SparkFun_KX132 KEYWORD1
7+
SparkFun_KX132_SPI KEYWORD1
8+
QwDevKX13X KEYWORD1
59

610
==================================
711
FUNCTIONS
812
==================================
13+
getUniqueI KEYWORD2D
914
initialize KEYWORD2
10-
runCommandTest KEYWORD2
11-
accelControl KEYWORD2
12-
readAccelState KEYWORD2
15+
enableAccel KEYWORD2
16+
softwareReset KEYWORD2
17+
getOperatingMode KEYWORD2
1318
setRange KEYWORD2
19+
setInterruptPin KEYWORD2
20+
enableDataEngine KEYWORD2
1421
setOutputDataRate KEYWORD2
22+
getOutputDataRate KEYWORD2
23+
dataReady KEYWORD2
24+
runCommandTest KEYWORD2
25+
readAccelState KEYWORD2
26+
getRawAccelData KEYWORD2
27+
getRawAccelRegisterData KEYWORD2
28+
getRawAccelBufferData KEYWORD2
1529
readOutputDataRate KEYWORD2
16-
setInterruptPin KEYWORD2
30+
enableTapEngine KEYWORD2
31+
setTapDataRate KEYWORD2
32+
enableDirecTapInterupt KEYWORD2
33+
enableDoubleTapInterrupt KEYWORD2
34+
enableTiltEngine KEYWORD2
35+
setTiltDataRate KEYWORD2
36+
setWakeDataRate KEYWORD2
37+
enableSleepEngine KEYWORD2
38+
enableWakeEngine KEYWORD2
39+
forceWake KEYWORD2
40+
forceSleep KEYWORD2
41+
configureInterruptPin KEYWORD2
1742
routeHardwareInterrupt KEYWORD2
43+
enablePhysInterrupt KEYWORD2
44+
setPinMode KEYWORD2
45+
setLatchControl KEYWORD2
46+
setPulseWidth KEYWORD2
1847
clearInterrupt KEYWORD2
19-
dataTrigger KEYWORD2
48+
tapDetected KEYWORD2
49+
getDirection KEYWORD2
50+
unknownTap KEYWORD2
51+
waterMarkReached KEYWORD2
52+
bufferFull KEYWORD2
53+
freeFall KEYWORD2
54+
doubleTapDetected KEYWORD2
55+
tiltChange KEYWORD2
2056
setBufferThreshold KEYWORD2
21-
setBufferOperation KEYWORD2
22-
enableBuffer KEYWORD2
23-
getRawAccelData KEYWORD2
24-
readRegister KEYWORD2
25-
writeRegister KEYWORD2
26-
readMultipleRegisters KEYWORD2
27-
overBufLenI2CRead KEYWORD2
57+
setBufferOperationMode KEYWORD2
58+
setBufferResolution KEYWORD2
59+
enableBufferInt KEYWORD2
60+
enableSampleBuffer KEYWORD2
61+
getSampleLevel KEYWORD2
62+
clearBuffer KEYWORD2
63+
getAccelData KEYWORD2
64+
convAccelData KEYWORD2
2865

2966
==================================
3067
CONSTANTS
3168
==================================
32-
KX13X_DEFAULT_ADDRESS LITERAL1
33-
KX13X_ALT_ADDRESS LITERAL1
69+
KX13X_ADDRESS_HIGH LITERAL1
70+
KX13X_ADDRESS_LOW LITERAL1
3471
KX132_WHO_AM_I LITERAL1
3572
KX134_WHO_AM_I LITERAL1
3673
TOTAL_ACCEL_DATA_16BIT LITERAL1
3774
TOTAL_ACCEL_DATA_8BIT LITERAL1
38-
MAX_BUFFER_LENGTH LITERAL1
3975
XLSB LITERAL1
4076
XMSB LITERAL1
4177
YLSB LITERAL1
4278
YMSB LITERAL1
4379
ZLSB LITERAL1
4480
ZMSB LITERAL1
4581
SPI_READ LITERAL1
46-
SPI_WRITE LITERAL1
4782
DEFAULT_SETTINGS LITERAL1
4883
INT_SETTINGS LITERAL1
4984
SOFT_INT_SETTINGS LITERAL1
@@ -56,113 +91,107 @@ BUFFER_8BIT_SAMPLES LITERAL1
5691
BUFFER_MODE_FIFO LITERAL1
5792
BUFFER_MODE_STREAM LITERAL1
5893
BUFFER_MODE_TRIGGER LITERAL1
59-
KX132_RANGE2G LITERAL1
60-
KX132_RANGE4G LITERAL1
61-
KX132_RANGE8G LITERAL1
62-
KX132_RANGE16G LITERAL1
63-
KX134_RANGE8G LITERAL1
64-
KX134_RANGE16G LITERAL1
65-
KX134_RANGE32G LITERAL1
66-
KX134_RANGE64G LITERAL1
67-
KX13X_MAN_ID LITERAL1
68-
KX13X_PART_ID LITERAL1
69-
KX13X_XADP_L LITERAL1
70-
KX13X_XADP_H LITERAL1
71-
KX13X_YADP_L LITERAL1
72-
KX13X_YADP_H LITERAL1
73-
KX13X_ZADP_L LITERAL1
74-
KX13X_ZADP_H LITERAL1
75-
KX13X_XOUT_L LITERAL1
76-
KX13X_XOUT_H LITERAL1
77-
KX13X_YOUT_L LITERAL1
78-
KX13X_YOUT_H LITERAL1
79-
KX13X_ZOUT_L LITERAL1
80-
KX13X_ZOUT_H LITERAL1
81-
KX13X_COTR LITERAL1
82-
KX13X_WHO_AM_I LITERAL1
83-
KXI3X_TSCP LITERAL1
84-
KX13X_TSPP LITERAL1
85-
KX13X_INS1 LITERAL1
86-
KX13X_INS2 LITERAL1
87-
KX13X_INS3 LITERAL1
88-
KX13X_STATUS_REG LITERAL1
89-
KX13X_INT_REL LITERAL1
90-
KX13X_CNTL1 LITERAL1
91-
KX13X_CNTL2 LITERAL1
92-
KX13X_CNTL3 LITERAL1
93-
KX13X_CNTL4 LITERAL1
94-
KX13X_CNTL5 LITERAL1
95-
KX13X_CNTL6 LITERAL1
96-
KX13X_ODCNTL LITERAL1
97-
KX13X_INC1 LITERAL1
98-
KX13X_INC2 LITERAL1
99-
KX13X_INC3 LITERAL1
100-
KX13X_INC4 LITERAL1
101-
KX13X_INC5 LITERAL1
102-
KX13X_INC6 LITERAL1
103-
KX13X_TILT_TIMER LITERAL1
104-
KX13X_TDTRC LITERAL1
105-
KX13X_TDTC LITERAL1
106-
KX13X_TTH LITERAL1
107-
KX13X_TTL LITERAL1
108-
KX13X_FTD LITERAL1
109-
KX13X_STD LITERAL1
110-
KX13X_TLT LITERAL1
111-
KX13X_TWS LITERAL1
112-
KX13X_FFTH LITERAL1
113-
KX13X_FFC LITERAL1
114-
KX13X_FFCNTL LITERAL1
115-
KX13X_TILT_ANGLE_LL LITERAL1
116-
KX13X_TILT_ANGLE_HL LITERAL1
117-
KX13X_HYST_SET LITERAL1
118-
KX13X_LP_CNTL1 LITERAL1
119-
KX13X_LP_CNTL2 LITERAL1
120-
KX13X_WUFTH LITERAL1
121-
KX13X_BTSWUFTH LITERAL1
122-
KX13X_BTSTH LITERAL1
123-
KX13X_BTSC LITERAL1
124-
KX13X_WUFC LITERAL1
125-
KX13X_SELF_TEST LITERAL1
126-
KX13X_BUF_CNTL1 LITERAL1
127-
KX13X_BUF_CNTL2 LITERAL1
128-
KX13X_BUF_STATUS_1 LITERAL1
129-
KX13X_BUF_STATUS_2 LITERAL1
130-
KX13X_BUF_CLEAR LITERAL1
131-
KX13X_BUF_READ LITERAL1
132-
KX13X_ADP_CNTL1 LITERAL1
133-
KX13X_ADP_CNTL2 LITERAL1
134-
KX13X_ADP_CNTL3 LITERAL1
135-
KX13X_ADP_CNTL4 LITERAL1
136-
KX13X_ADP_CNTL5 LITERAL1
137-
KX13X_ADP_CNTL6 LITERAL1
138-
KX13X_ADP_CNTL7 LITERAL1
139-
KX13X_ADP_CNTL8 LITERAL1
140-
KX13X_ADP_CNTL9 LITERAL1
141-
KX13X_ADP_CNTL10 LITERAL1
142-
KX13X_ADP_CNTL11 LITERAL1
143-
KX13X_ADP_CNTL12 LITERAL1
144-
KX13X_ADP_CNTL13 LITERAL1
145-
KX13X_ADP_CNTL14 LITERAL1
146-
KX13X_ADP_CNTL15 LITERAL1
147-
KX13X_ADP_CNTL16 LITERAL1
148-
KX13X_ADP_CNTL17 LITERAL1
149-
KX13X_ADP_CNTL18 LITERAL1
150-
KX13X_ADP_CNTL19 LITERAL1
151-
KX13X_SUCCESS LITERAL1
152-
KX13X_GENERAL_ERROR LITERAL1
153-
KX13X_I2C_ERROR LITERAL1
154-
HI_TILT_POSITION LITERAL1
155-
HI_WAKE_UP LITERAL1
156-
HI_TAP_DOUBLE_TAP LITERAL1
157-
HI_BACK_TO_SLEEP LITERAL1
158-
HI_DATA_READY LITERAL1
159-
HI_WATERMARK LITERAL1
160-
HI_BUFFER_FULL LITERAL1
161-
HI_FREEFALL LITERAL1
94+
SFE_KX132_RANGE2G LITERAL1
95+
SFE_KX132_RANGE4G LITERAL1
96+
SFE_KX132_RANGE8G LITERAL1
97+
SFE_KX132_RANGE16G LITERAL1
98+
SFE_KX134_RANGE8G LITERAL1
99+
SFE_KX134_RANGE16G LITERAL1
100+
SFE_KX134_RANGE32G LITERAL1
101+
SFE_KX134_RANGE64G LITERAL1
102+
SFE_KX13X_MAN_ID LITERAL1
103+
SFE_KX13X_PART_ID LITERAL1
104+
SFE_KX13X_XADP_L LITERAL1
105+
SFE_KX13X_XADP_H LITERAL1
106+
SFE_KX13X_YADP_L LITERAL1
107+
SFE_KX13X_YADP_H LITERAL1
108+
SFE_KX13X_ZADP_L LITERAL1
109+
SFE_KX13X_ZADP_H LITERAL1
110+
SFE_KX13X_XOUT_L LITERAL1
111+
SFE_KX13X_XOUT_H LITERAL1
112+
SFE_KX13X_YOUT_L LITERAL1
113+
SFE_KX13X_YOUT_H LITERAL1
114+
SFE_KX13X_ZOUT_L LITERAL1
115+
SFE_KX13X_ZOUT_H LITERAL1
116+
SFE_KX13X_COTR LITERAL1
117+
SFE_KX13X_WHO_AM_I LITERAL1
118+
SFE_KX13X_TSCP LITERAL1
119+
SFE_KX13X_TSPP LITERAL1
120+
SFE_KX13X_INS1 LITERAL1
121+
SFE_KX13X_INS2 LITERAL1
122+
SFE_KX13X_INS3 LITERAL1
123+
SFE_KX13X_STATUS_REG LITERAL1
124+
SFE_KX13X_INT_REL LITERAL1
125+
SFE_KX13X_CNTL1 LITERAL1
126+
SFE_KX13X_CNTL2 LITERAL1
127+
SFE_KX13X_CNTL3 LITERAL1
128+
SFE_KX13X_CNTL4 LITERAL1
129+
SFE_KX13X_CNTL5 LITERAL1
130+
SFE_KX13X_CNTL6 LITERAL1
131+
SFE_KX13X_ODCNTL LITERAL1
132+
SFE_KX13X_INC1 LITERAL1
133+
SFE_KX13X_INC2 LITERAL1
134+
SFE_KX13X_INC3 LITERAL1
135+
SFE_KX13X_INC4 LITERAL1
136+
SFE_KX13X_INC5 LITERAL1
137+
SFE_KX13X_INC6 LITERAL1
138+
SFE_KX13X_TILT_TIMER LITERAL1
139+
SFE_KX13X_TDTRC LITERAL1
140+
SFE_KX13X_TDTC LITERAL1
141+
SFE_KX13X_TTH LITERAL1
142+
SFE_KX13X_TTL LITERAL1
143+
SFE_KX13X_FTD LITERAL1
144+
SFE_KX13X_STD LITERAL1
145+
SFE_KX13X_TLT LITERAL1
146+
SFE_KX13X_TWS LITERAL1
147+
SFE_KX13X_FFTH LITERAL1
148+
SFE_KX13X_FFC LITERAL1
149+
SFE_KX13X_FFCNTL LITERAL1
150+
SFE_KX13X_TILT_ANGLE_LL LITERAL1
151+
SFE_KX13X_TILT_ANGLE_HL LITERAL1
152+
SFE_KX13X_HYST_SET LITERAL1
153+
SFE_KX13X_LP_CNTL1 LITERAL1
154+
SFE_KX13X_LP_CNTL2 LITERAL1
155+
SFE_KX13X_WUFTH LITERAL1
156+
SFE_KX13X_BTSWUFTH LITERAL1
157+
SFE_KX13X_BTSTH LITERAL1
158+
SFE_KX13X_BTSC LITERAL1
159+
SFE_KX13X_WUFC LITERAL1
160+
SFE_KX13X_SELF_TEST LITERAL1
161+
SFE_KX13X_BUF_CNTL1 LITERAL1
162+
SFE_KX13X_BUF_CNTL2 LITERAL1
163+
SFE_KX13X_BUF_STATUS_1 LITERAL1
164+
SFE_KX13X_BUF_STATUS_2 LITERAL1
165+
SFE_KX13X_BUF_CLEAR LITERAL1
166+
SFE_KX13X_BUF_READ LITERAL1
167+
SFE_KX13X_ADP_CNTL1 LITERAL1
168+
SFE_KX13X_ADP_CNTL2 LITERAL1
169+
SFE_KX13X_ADP_CNTL3 LITERAL1
170+
SFE_KX13X_ADP_CNTL4 LITERAL1
171+
SFE_KX13X_ADP_CNTL5 LITERAL1
172+
SFE_KX13X_ADP_CNTL6 LITERAL1
173+
SFE_KX13X_ADP_CNTL7 LITERAL1
174+
SFE_KX13X_ADP_CNTL8 LITERAL1
175+
SFE_KX13X_ADP_CNTL9 LITERAL1
176+
SFE_KX13X_ADP_CNTL10 LITERAL1
177+
SFE_KX13X_ADP_CNTL11 LITERAL1
178+
SFE_KX13X_ADP_CNTL12 LITERAL1
179+
SFE_KX13X_ADP_CNTL13 LITERAL1
180+
SFE_KX13X_ADP_CNTL14 LITERAL1
181+
SFE_KX13X_ADP_CNTL15 LITERAL1
182+
SFE_KX13X_ADP_CNTL16 LITERAL1
183+
SFE_KX13X_ADP_CNTL17 LITERAL1
184+
SFE_KX13X_ADP_CNTL18 LITERAL1
185+
SFE_KX13X_ADP_CNTL19 LITERAL1
186+
SFE_KX13X_SUCCESS LITERAL1
187+
SFE_KX13X_GENERAL_ERROR LITERAL1
188+
SFE_KX13X_I2C_ERROR LITERAL1
162189

163190
==================================
164191
DATA TYPES
165192
==================================
166193
KX13X_REGISTERS KEYWORD1
167194
KX13X_STATUS_t KEYWORD1
168195
HARDWARE_INTERRUPT KEYWORD1
196+
rawOutputData KEYWORD1
197+
rawAccelData KEYWORD1

0 commit comments

Comments
 (0)