summaryrefslogtreecommitdiff
path: root/drivers/sensors
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/sensors')
-rw-r--r--drivers/sensors/cirque_pinnacle_spi.c5
-rw-r--r--drivers/sensors/pmw3360.c4
-rw-r--r--drivers/sensors/pmw3360.h4
3 files changed, 9 insertions, 4 deletions
diff --git a/drivers/sensors/cirque_pinnacle_spi.c b/drivers/sensors/cirque_pinnacle_spi.c
index f3eee88758..ed40abd9fa 100644
--- a/drivers/sensors/cirque_pinnacle_spi.c
+++ b/drivers/sensors/cirque_pinnacle_spi.c
@@ -15,7 +15,7 @@ extern bool touchpad_init;
void RAP_ReadBytes(uint8_t address, uint8_t* data, uint8_t count) {
uint8_t cmdByte = READ_MASK | address; // Form the READ command byte
if (touchpad_init) {
- if (spi_start(CIRQUE_PINNACLE_SPI_CS_PIN, CIRQUE_TRACKPAD_SPI_LSBFIRST, CIRQUE_PINNACLE_SPI_MODE, CIRQUE_PINNACLE_SPI_DIVISOR)) {
+ if (spi_start(CIRQUE_PINNACLE_SPI_CS_PIN, CIRQUE_PINNACLE_SPI_LSBFIRST, CIRQUE_PINNACLE_SPI_MODE, CIRQUE_PINNACLE_SPI_DIVISOR)) {
spi_write(cmdByte);
spi_read(); // filler
spi_read(); // filler
@@ -27,7 +27,6 @@ void RAP_ReadBytes(uint8_t address, uint8_t* data, uint8_t count) {
dprintf("error right touchpad\n");
#endif
touchpad_init = false;
- j
}
spi_stop();
}
@@ -38,7 +37,7 @@ void RAP_Write(uint8_t address, uint8_t data) {
uint8_t cmdByte = WRITE_MASK | address; // Form the WRITE command byte
if (touchpad_init) {
- if (spi_start(CIRQUE_PINNACLE_SPI_CS_PIN, CIRQUE_TRACKPAD_SPI_LSBFIRST, CIRQUE_PINNACLE_SPI_MODE, CIRQUE_PINNACLE_SPI_DIVISOR)) {
+ if (spi_start(CIRQUE_PINNACLE_SPI_CS_PIN, CIRQUE_PINNACLE_SPI_LSBFIRST, CIRQUE_PINNACLE_SPI_MODE, CIRQUE_PINNACLE_SPI_DIVISOR)) {
spi_write(cmdByte);
spi_write(data);
} else {
diff --git a/drivers/sensors/pmw3360.c b/drivers/sensors/pmw3360.c
index 2b27dccbb6..50d1c35801 100644
--- a/drivers/sensors/pmw3360.c
+++ b/drivers/sensors/pmw3360.c
@@ -143,7 +143,7 @@ void pmw3360_set_cpi(uint16_t cpi) {
uint16_t pmw3360_get_cpi(void) {
uint8_t cpival = spi_read_adv(REG_Config1);
- return (uint16_t)(cpival & 0xFF) * 100;
+ return (uint16_t)((cpival + 1) & 0xFF) * 100;
}
bool pmw3360_init(void) {
@@ -186,6 +186,8 @@ bool pmw3360_init(void) {
spi_write_adv(REG_Angle_Tune, constrain(ROTATIONAL_TRANSFORM_ANGLE, -30, 30));
+ spi_write_adv(REG_Lift_Config, PMW3360_LIFTOFF_DISTANCE);
+
bool init_success = pmw3360_check_signature();
writePinLow(PMW3360_CS_PIN);
diff --git a/drivers/sensors/pmw3360.h b/drivers/sensors/pmw3360.h
index 7b2bef5b80..9aa8e13f8e 100644
--- a/drivers/sensors/pmw3360.h
+++ b/drivers/sensors/pmw3360.h
@@ -46,6 +46,10 @@
# endif
#endif
+#ifndef PMW3360_LIFTOFF_DISTANCE
+# define PMW3360_LIFTOFF_DISTANCE 0x02
+#endif
+
#ifndef ROTATIONAL_TRANSFORM_ANGLE
# define ROTATIONAL_TRANSFORM_ANGLE 0x00
#endif