aboutsummaryrefslogtreecommitdiff
path: root/drivers/sensors/pmw3360.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/sensors/pmw3360.h')
-rw-r--r--drivers/sensors/pmw3360.h81
1 files changed, 31 insertions, 50 deletions
diff --git a/drivers/sensors/pmw3360.h b/drivers/sensors/pmw3360.h
index d5b174179..3a2a536e5 100644
--- a/drivers/sensors/pmw3360.h
+++ b/drivers/sensors/pmw3360.h
@@ -20,56 +20,37 @@
20 20
21#include "spi_master.h" 21#include "spi_master.h"
22 22
23// Registers 23#ifndef PMW3360_CPI
24#define REG_Product_ID 0x00 24# define PMW3360_CPI 1600
25#define REG_Revision_ID 0x01 25#endif
26#define REG_Motion 0x02 26
27#define REG_Delta_X_L 0x03 27#ifndef PMW3360_CLOCK_SPEED
28#define REG_Delta_X_H 0x04 28# define PMW3360_CLOCK_SPEED 70000000
29#define REG_Delta_Y_L 0x05 29#endif
30#define REG_Delta_Y_H 0x06 30
31#define REG_SQUAL 0x07 31#ifndef PMW3360_SPI_LSBFIRST
32#define REG_Raw_Data_Sum 0x08 32# define PMW3360_SPI_LSBFIRST false
33#define REG_Maximum_Raw_data 0x09 33#endif
34#define REG_Minimum_Raw_data 0x0A 34
35#define REG_Shutter_Lower 0x0B 35#ifndef PMW3360_SPI_MODE
36#define REG_Shutter_Upper 0x0C 36# define PMW3360_SPI_MODE 3
37#define REG_Control 0x0D 37#endif
38#define REG_Config1 0x0F 38
39#define REG_Config2 0x10 39#ifndef PMW3360_SPI_DIVISOR
40#define REG_Angle_Tune 0x11 40# ifdef __AVR__
41#define REG_Frame_Capture 0x12 41# define PMW3360_SPI_DIVISOR (F_CPU / PMW3360_CLOCK_SPEED)
42#define REG_SROM_Enable 0x13 42# else
43#define REG_Run_Downshift 0x14 43# define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 64
44#define REG_Rest1_Rate_Lower 0x15 44# endif
45#define REG_Rest1_Rate_Upper 0x16 45#endif
46#define REG_Rest1_Downshift 0x17 46
47#define REG_Rest2_Rate_Lower 0x18 47#ifndef ROTATIONAL_TRANSFORM_ANGLE
48#define REG_Rest2_Rate_Upper 0x19 48# define ROTATIONAL_TRANSFORM_ANGLE 0x00
49#define REG_Rest2_Downshift 0x1A 49#endif
50#define REG_Rest3_Rate_Lower 0x1B 50
51#define REG_Rest3_Rate_Upper 0x1C 51#ifndef PMW3360_CS_PIN
52#define REG_Observation 0x24 52# error "No chip select pin defined -- missing PMW3360_CS_PIN"
53#define REG_Data_Out_Lower 0x25 53#endif
54#define REG_Data_Out_Upper 0x26
55#define REG_Raw_Data_Dump 0x29
56#define REG_SROM_ID 0x2A
57#define REG_Min_SQ_Run 0x2B
58#define REG_Raw_Data_Threshold 0x2C
59#define REG_Config5 0x2F
60#define REG_Power_Up_Reset 0x3A
61#define REG_Shutdown 0x3B
62#define REG_Inverse_Product_ID 0x3F
63#define REG_LiftCutoff_Tune3 0x41
64#define REG_Angle_Snap 0x42
65#define REG_LiftCutoff_Tune1 0x4A
66#define REG_Motion_Burst 0x50
67#define REG_LiftCutoff_Tune_Timeout 0x58
68#define REG_LiftCutoff_Tune_Min_Length 0x5A
69#define REG_SROM_Load_Burst 0x62
70#define REG_Lift_Config 0x63
71#define REG_Raw_Data_Burst 0x64
72#define REG_LiftCutoff_Tune2 0x65
73 54
74#ifdef CONSOLE_ENABLE 55#ifdef CONSOLE_ENABLE
75void print_byte(uint8_t byte); 56void print_byte(uint8_t byte);