40 uint32_t now = millis();
41 if (now -
msraw < MSEC_THRESHOLD)
return;
43 SPI1.beginTransaction(SPI_SETTING);
44 digitalWrite(
csPin, LOW);
46 int16_t z1 = SPI1.transfer16(0xC1 ) >> 3;
48 int16_t z2 = SPI1.transfer16(0x91 ) >> 3;
50 if (z >= Z_THRESHOLD) {
51 SPI1.transfer16(0x91 );
52 data[0] = SPI1.transfer16(0xD1 ) >> 3;
53 data[1] = SPI1.transfer16(0x91 ) >> 3;
54 data[2] = SPI1.transfer16(0xD1 ) >> 3;
55 data[3] = SPI1.transfer16(0x91 ) >> 3;
57 else data[0] = data[1] = data[2] = data[3] = 0;
58 data[4] = SPI1.transfer16(0xD0 ) >> 3;
59 data[5] = SPI1.transfer16(0) >> 3;
60 digitalWrite(
csPin, HIGH);
61 SPI1.endTransaction();
64 if (z < Z_THRESHOLD) {
67 if (z < Z_THRESHOLD_INT) {
68 if (255 !=
tirqPin) isrWake =
false;
78 int16_t x =
besttwoavg( data[0], data[2], data[4] );
79 int16_t y =
besttwoavg( data[1], data[3], data[5] );
83 if (z >= Z_THRESHOLD) {
static int16_t besttwoavg(int16_t x, int16_t y, int16_t z)