diff options
Diffstat (limited to 'drivers/sensors/pmw3360.h')
| -rw-r--r-- | drivers/sensors/pmw3360.h | 81 |
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 |
| 75 | void print_byte(uint8_t byte); | 56 | void print_byte(uint8_t byte); |
