I don't finish configuring this program.

Dependencies:   mbed

Committer:
ryosuke
Date:
Fri Aug 08 06:36:15 2014 +0000
Revision:
1:46abb3b9347d
Parent:
0:9beaad87014d
this program is a test program of ADNS 3080 optical flow sensor. this optical flow sensor board is developed by 3DRobotics.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ryosuke 1:46abb3b9347d 1 /*
ryosuke 1:46abb3b9347d 2 *author Ryosuke Yumoto
ryosuke 1:46abb3b9347d 3 */
ryosuke 0:9beaad87014d 4 #ifndef ADNS3080_H
ryosuke 0:9beaad87014d 5 #define ADNS3080_H
ryosuke 0:9beaad87014d 6
ryosuke 0:9beaad87014d 7 #include "mbed.h"
ryosuke 0:9beaad87014d 8
ryosuke 0:9beaad87014d 9 //Register map
ryosuke 0:9beaad87014d 10 #define ADNS3080_PRODUCT_ID 0x00
ryosuke 0:9beaad87014d 11 #define ADNS3080_REVISION_ID 0x01
ryosuke 0:9beaad87014d 12 #define ADNS3080_MOTION 0x02
ryosuke 0:9beaad87014d 13 #define ADNS3080_DELTA_X 0x03
ryosuke 0:9beaad87014d 14 #define ADNS3080_DELTA_Y 0x04
ryosuke 0:9beaad87014d 15 #define ADNS3080_SQUAL 0x05
ryosuke 0:9beaad87014d 16 #define ADNS3080_PIXEL_SUM 0x06
ryosuke 0:9beaad87014d 17 #define ADNS3080_MAXIMUM_PIXEL 0x07
ryosuke 0:9beaad87014d 18 #define ADNS3080_CONFIGURATION_BITS 0x0a
ryosuke 0:9beaad87014d 19 #define ADNS3080_EXTENDED_CONFIG 0x0b
ryosuke 0:9beaad87014d 20 #define ADNS3080_DATA_OUT_LOWER 0x0c
ryosuke 0:9beaad87014d 21 #define ADNS3080_DATA_OUT_UPPER 0x0d
ryosuke 0:9beaad87014d 22 #define ADNS3080_SHUTTER_LOWER 0x0e
ryosuke 0:9beaad87014d 23 #define ADNS3080_SHUTTER_UPPER 0x0f
ryosuke 0:9beaad87014d 24 #define ADNS3080_FRAME_PERIOD_LOWER 0x10
ryosuke 0:9beaad87014d 25 #define ADNS3080_FRAME_PERIOD_UPPER 0x11
ryosuke 0:9beaad87014d 26 #define ADNS3080_MOTION_CLEAR 0x12
ryosuke 0:9beaad87014d 27 #define ADNS3080_FRAME_CAPTURE 0x13
ryosuke 0:9beaad87014d 28 #define ADNS3080_SROM_ENABLE 0x14
ryosuke 0:9beaad87014d 29 #define ADNS3080_FRAME_PERIOD_MAX_BOUND_LOWER 0x19
ryosuke 0:9beaad87014d 30 #define ADNS3080_FRAME_PERIOD_MAX_BOUND_UPPER 0x1a
ryosuke 0:9beaad87014d 31 #define ADNS3080_FRAME_PERIOD_MIN_BOUND_LOWER 0x1b
ryosuke 0:9beaad87014d 32 #define ADNS3080_FRAME_PERIOD_MIN_BOUND_UPPER 0x1c
ryosuke 0:9beaad87014d 33 #define ADNS3080_SHUTTER_MAX_BOUND_LOWER 0x1d
ryosuke 0:9beaad87014d 34 #define ADNS3080_SHUTTER_MAX_BOUND_UPPER 0x1e
ryosuke 0:9beaad87014d 35 #define ADNS3080_SROM_ID 0x1f
ryosuke 0:9beaad87014d 36 #define ADNS3080_OBSERVATION 0x3d
ryosuke 0:9beaad87014d 37 #define ADNS3080_INVERSE_PRODUCT_ID 0x3f
ryosuke 0:9beaad87014d 38 #define ADNS3080_PIXEL_BURST 0x40
ryosuke 0:9beaad87014d 39 #define ADNS3080_MOTION_BURST 0x50
ryosuke 0:9beaad87014d 40 #define ADNS3080_SROM_LOAD 0x60
ryosuke 0:9beaad87014d 41
ryosuke 0:9beaad87014d 42 #define ADNS3080_SPI_READ 0x00
ryosuke 0:9beaad87014d 43 #define ADNS3080_SPI_WRITE 0x80
ryosuke 0:9beaad87014d 44
ryosuke 0:9beaad87014d 45
ryosuke 0:9beaad87014d 46
ryosuke 0:9beaad87014d 47 class ADNS3080{
ryosuke 0:9beaad87014d 48 public:
ryosuke 0:9beaad87014d 49
ryosuke 0:9beaad87014d 50 ADNS3080(PinName mosi, PinName miso, PinName sck, PinName cs);
ryosuke 0:9beaad87014d 51
ryosuke 0:9beaad87014d 52 int getProdID(void);
ryosuke 0:9beaad87014d 53 int getRevID(void);
ryosuke 0:9beaad87014d 54 int getMotion(void);
ryosuke 0:9beaad87014d 55 signed char getDelta_X(void);
ryosuke 0:9beaad87014d 56 signed char getDelta_Y(void);
ryosuke 1:46abb3b9347d 57 unsigned int getSQUAL(void);
ryosuke 1:46abb3b9347d 58 unsigned short getPixel_sum(void);
ryosuke 1:46abb3b9347d 59 char getMax_Pixel(void);
ryosuke 1:46abb3b9347d 60 int getConfiguration_bits(void);
ryosuke 1:46abb3b9347d 61 void setConfiguration_bits(char configuration);
ryosuke 1:46abb3b9347d 62 int getExtended_config(void);
ryosuke 1:46abb3b9347d 63 void setExtended_config(char extended_config);
ryosuke 1:46abb3b9347d 64 /*
ryosuke 1:46abb3b9347d 65 short getData_Out(void);
ryosuke 1:46abb3b9347d 66 unsigned int getShutter(void);
ryosuke 1:46abb3b9347d 67 unsigned int getFrame_Period(void);
ryosuke 1:46abb3b9347d 68 void Motion_Clear(void);
ryosuke 1:46abb3b9347d 69 */
ryosuke 1:46abb3b9347d 70
ryosuke 0:9beaad87014d 71 int getInverProdID(void);
ryosuke 0:9beaad87014d 72
ryosuke 0:9beaad87014d 73 private:
ryosuke 0:9beaad87014d 74
ryosuke 0:9beaad87014d 75 SPI spi_;
ryosuke 0:9beaad87014d 76 DigitalOut nCS_;
ryosuke 0:9beaad87014d 77
ryosuke 0:9beaad87014d 78 int ReadRegister(int address);
ryosuke 0:9beaad87014d 79
ryosuke 0:9beaad87014d 80 void WriteRegister(int address, char data);
ryosuke 0:9beaad87014d 81 };
ryosuke 0:9beaad87014d 82
ryosuke 0:9beaad87014d 83 #endif