diff options
Diffstat (limited to 'drivers/sensors')
-rw-r--r-- | drivers/sensors/cirque_pinnacle_spi.c | 5 | ||||
-rw-r--r-- | drivers/sensors/pmw3360.c | 4 | ||||
-rw-r--r-- | drivers/sensors/pmw3360.h | 4 |
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 |