~ruther/qmk_firmware

9c340077f630ef464758687e67e415e85376dad1 — Glen D'souza 1 year, 9 months ago c9810fa
Fix lower cpi bound on PMW33XX (#22108)

3 files changed, 3 insertions(+), 3 deletions(-)

M drivers/sensors/pmw3320.c
M drivers/sensors/pmw3360.c
M drivers/sensors/pmw3389.c
M drivers/sensors/pmw3320.c => drivers/sensors/pmw3320.c +1 -1
@@ 178,7 178,7 @@ uint16_t pmw3320_get_cpi(void) {
}

void pmw3320_set_cpi(uint16_t cpi) {
    uint8_t cpival = constrain((cpi / PMW3320_CPI_STEP) - 1U, 0, (PMW3320_CPI_MAX / PMW3320_CPI_STEP) - 1U);
    uint8_t cpival = constrain((cpi / PMW3320_CPI_STEP), (PMW3320_CPI_MIN / PMW3320_CPI_STEP), (PMW3320_CPI_MAX / PMW3320_CPI_STEP)) - 1U;
    // Fifth bit is probably a control bit.
    // PMW3320 datasheet don't have any info on this, so this is a pure guess.
    pmw3320_write_reg(REG_Resolution, 0x20 | cpival);

M drivers/sensors/pmw3360.c => drivers/sensors/pmw3360.c +1 -1
@@ 23,7 23,7 @@ void pmw33xx_set_cpi(uint8_t sensor, uint16_t cpi) {
        return;
    }

    uint8_t cpival = CONSTRAIN((cpi / PMW33XX_CPI_STEP) - 1, 0, (PMW33XX_CPI_MAX / PMW33XX_CPI_STEP) - 1U);
    uint8_t cpival = CONSTRAIN((cpi / PMW33XX_CPI_STEP), (PMW33XX_CPI_MIN / PMW33XX_CPI_STEP), (PMW33XX_CPI_MAX / PMW33XX_CPI_STEP)) - 1U;
    pmw33xx_write(sensor, REG_Config1, cpival);
}


M drivers/sensors/pmw3389.c => drivers/sensors/pmw3389.c +1 -1
@@ 22,7 22,7 @@ void pmw33xx_set_cpi(uint8_t sensor, uint16_t cpi) {
        return;
    }

    uint16_t cpival = CONSTRAIN((cpi / PMW33XX_CPI_STEP) - 1, 0, (PMW33XX_CPI_MAX / PMW33XX_CPI_STEP) - 1U);
    uint16_t cpival = CONSTRAIN((cpi / PMW33XX_CPI_STEP), (PMW33XX_CPI_MIN / PMW33XX_CPI_STEP), (PMW33XX_CPI_MAX / PMW33XX_CPI_STEP)) - 1U;
    // Sets upper byte first for more consistent setting of cpi
    pmw33xx_write(sensor, REG_Resolution_H, (cpival >> 8) & 0xFF);
    pmw33xx_write(sensor, REG_Resolution_L, cpival & 0xFF);

Do not follow this link