Kostya B. / Mbed 2 deprecated ADNS3080_LCD

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI mbed

Fork of ADNS3080_HelloWorld by ryosuke yumoto

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ADNS3080.h Source File

ADNS3080.h

00001 /*
00002  *author Ryosuke Yumoto
00003  */
00004 #ifndef ADNS3080_H
00005 #define ADNS3080_H
00006 
00007 #include "mbed.h"
00008 
00009 //Register map
00010 #define ADNS3080_PRODUCT_ID             0x00
00011 #define ADNS3080_REVISION_ID            0x01
00012 #define ADNS3080_MOTION                 0x02
00013 #define ADNS3080_DELTA_X                0x03
00014 #define ADNS3080_DELTA_Y                0x04
00015 #define ADNS3080_SQUAL                  0x05
00016 #define ADNS3080_PIXEL_SUM              0x06
00017 #define ADNS3080_MAXIMUM_PIXEL          0x07
00018 #define ADNS3080_CONFIGURATION_BITS     0x0a
00019 #define ADNS3080_EXTENDED_CONFIG        0x0b
00020 #define ADNS3080_DATA_OUT_LOWER         0x0c
00021 #define ADNS3080_DATA_OUT_UPPER         0x0d
00022 #define ADNS3080_SHUTTER_LOWER          0x0e
00023 #define ADNS3080_SHUTTER_UPPER          0x0f
00024 #define ADNS3080_FRAME_PERIOD_LOWER     0x10
00025 #define ADNS3080_FRAME_PERIOD_UPPER     0x11
00026 #define ADNS3080_MOTION_CLEAR           0x12
00027 #define ADNS3080_FRAME_CAPTURE          0x13
00028 #define ADNS3080_SROM_ENABLE            0x14
00029 #define ADNS3080_FRAME_PERIOD_MAX_BOUND_LOWER   0x19
00030 #define ADNS3080_FRAME_PERIOD_MAX_BOUND_UPPER   0x1a
00031 #define ADNS3080_FRAME_PERIOD_MIN_BOUND_LOWER   0x1b
00032 #define ADNS3080_FRAME_PERIOD_MIN_BOUND_UPPER   0x1c
00033 #define ADNS3080_SHUTTER_MAX_BOUND_LOWER        0x1d
00034 #define ADNS3080_SHUTTER_MAX_BOUND_UPPER        0x1e
00035 #define ADNS3080_SROM_ID                0x1f
00036 #define ADNS3080_OBSERVATION            0x3d
00037 #define ADNS3080_INVERSE_PRODUCT_ID     0x3f
00038 #define ADNS3080_PIXEL_BURST            0x40
00039 #define ADNS3080_MOTION_BURST           0x50
00040 #define ADNS3080_SROM_LOAD              0x60
00041 
00042 #define ADNS3080_SPI_READ   0x00
00043 #define ADNS3080_SPI_WRITE  0x80
00044 
00045 
00046 
00047 class ADNS3080{
00048     public:
00049     
00050     ADNS3080(PinName mosi, PinName miso, PinName sck, PinName cs);
00051     
00052     int getProdID(void);
00053     int getRevID(void);
00054     int getMotion(void);
00055     signed char getDelta_X(void);
00056     signed char getDelta_Y(void);
00057     unsigned int getSQUAL(void);
00058     unsigned short getPixel_sum(void);
00059     char getMax_Pixel(void);
00060     int getConfiguration_bits(void);
00061     void setConfiguration_bits(char configuration);
00062     int getExtended_config(void);
00063     void setExtended_config(char extended_config);
00064 /*
00065     short getData_Out(void);
00066     unsigned int getShutter(void);
00067     unsigned int getFrame_Period(void);
00068     void Motion_Clear(void);
00069 */
00070     
00071     int getInverProdID(void);
00072     
00073     private:
00074     
00075     SPI        spi_;
00076     DigitalOut nCS_;
00077     
00078     int ReadRegister(int address);
00079     
00080     void WriteRegister(int address, char data);
00081 };
00082 
00083 #endif