|
|
@ -18,12 +18,12 @@ |
|
|
|
|
|
|
|
#ifdef POINTING_DEVICE_ENABLE |
|
|
|
|
|
|
|
#include "wait.h" |
|
|
|
#include "debug.h" |
|
|
|
#include "print.h" |
|
|
|
#include "pmw3360.h" |
|
|
|
#include "pmw3360_firmware.h" |
|
|
|
|
|
|
|
#ifdef CONSOLE_ENABLE |
|
|
|
# include "print.h" |
|
|
|
#endif |
|
|
|
bool _inBurst = false; |
|
|
|
|
|
|
|
#ifndef PMW_CPI |
|
|
@ -36,10 +36,7 @@ bool _inBurst = false; |
|
|
|
# define ROTATIONAL_TRANSFORM_ANGLE 0x00 |
|
|
|
#endif |
|
|
|
|
|
|
|
#ifdef CONSOLE_ENABLE |
|
|
|
void print_byte(uint8_t byte) { dprintf("%c%c%c%c%c%c%c%c|", (byte & 0x80 ? '1' : '0'), (byte & 0x40 ? '1' : '0'), (byte & 0x20 ? '1' : '0'), (byte & 0x10 ? '1' : '0'), (byte & 0x08 ? '1' : '0'), (byte & 0x04 ? '1' : '0'), (byte & 0x02 ? '1' : '0'), (byte & 0x01 ? '1' : '0')); } |
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
bool spi_start_adv(void) { |
|
|
|
bool status = spi_start(SPI_SS_PIN, false, 3, SPI_DIVISOR); |
|
|
@ -173,9 +170,7 @@ bool pmw_check_signature(void) { |
|
|
|
|
|
|
|
report_pmw_t pmw_read_burst(void) { |
|
|
|
if (!_inBurst) { |
|
|
|
#ifdef CONSOLE_ENABLE |
|
|
|
dprintf("burst on"); |
|
|
|
#endif |
|
|
|
spi_write_adv(REG_Motion_Burst, 0x00); |
|
|
|
_inBurst = true; |
|
|
|
} |
|
|
@ -200,14 +195,12 @@ report_pmw_t pmw_read_burst(void) { |
|
|
|
|
|
|
|
spi_stop(); |
|
|
|
|
|
|
|
#ifdef CONSOLE_ENABLE |
|
|
|
print_byte(data.motion); |
|
|
|
print_byte(data.dx); |
|
|
|
print_byte(data.mdx); |
|
|
|
print_byte(data.dy); |
|
|
|
print_byte(data.mdy); |
|
|
|
dprintf("\n"); |
|
|
|
#endif |
|
|
|
|
|
|
|
data.isMotion = (data.motion & 0x80) != 0; |
|
|
|
data.isOnSurface = (data.motion & 0x08) == 0; |
|
|
|