kao yi
/
rtos_basic
bx-cam
Fork of rtos_basic by
ov7670.h@8:025a9d74a731, 2014-07-08 (annotated)
- Committer:
- backman
- Date:
- Tue Jul 08 06:21:37 2014 +0000
- Revision:
- 8:025a9d74a731
- Parent:
- 7:f990f03bc2b2
wang
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
backman | 7:f990f03bc2b2 | 1 | // |
backman | 7:f990f03bc2b2 | 2 | // OV7670 library |
backman | 7:f990f03bc2b2 | 3 | // |
backman | 7:f990f03bc2b2 | 4 | |
backman | 7:f990f03bc2b2 | 5 | #pragma once |
backman | 7:f990f03bc2b2 | 6 | #include "mbed.h" |
backman | 7:f990f03bc2b2 | 7 | #include "ov7670reg.h" |
backman | 7:f990f03bc2b2 | 8 | |
backman | 7:f990f03bc2b2 | 9 | #define OV7670_WRITE (0x42) |
backman | 7:f990f03bc2b2 | 10 | #define OV7670_READ (0x43) |
backman | 7:f990f03bc2b2 | 11 | #define OV7670_WRITEWAIT (20) |
backman | 7:f990f03bc2b2 | 12 | #define OV7670_NOACK (0) |
backman | 7:f990f03bc2b2 | 13 | #define OV7670_REGMAX (201) |
backman | 7:f990f03bc2b2 | 14 | #define OV7670_I2CFREQ (100000) |
backman | 7:f990f03bc2b2 | 15 | |
backman | 7:f990f03bc2b2 | 16 | |
backman | 7:f990f03bc2b2 | 17 | class OV7670 |
backman | 7:f990f03bc2b2 | 18 | { |
backman | 7:f990f03bc2b2 | 19 | public: |
backman | 7:f990f03bc2b2 | 20 | |
backman | 7:f990f03bc2b2 | 21 | OV7670( |
backman | 7:f990f03bc2b2 | 22 | PinName sda, // Camera I2C port |
backman | 7:f990f03bc2b2 | 23 | PinName scl, // Camera I2C port |
backman | 7:f990f03bc2b2 | 24 | PinName vs, // VSYNC |
backman | 7:f990f03bc2b2 | 25 | PinName hr, // HREF |
backman | 7:f990f03bc2b2 | 26 | PinName we, // WEN |
backman | 7:f990f03bc2b2 | 27 | |
backman | 8:025a9d74a731 | 28 | PinName d7, // D7 |
backman | 8:025a9d74a731 | 29 | PinName d6, // D6 |
backman | 8:025a9d74a731 | 30 | PinName d5, // D5 |
backman | 8:025a9d74a731 | 31 | PinName d4, // D4 |
backman | 8:025a9d74a731 | 32 | PinName d3, // D3 |
backman | 8:025a9d74a731 | 33 | PinName d2, // D2 |
backman | 8:025a9d74a731 | 34 | PinName d1, // D1 |
backman | 8:025a9d74a731 | 35 | PinName d0, // D0 // 0b0000_0M65_4000_0321_L000_0000_0000_0000 = 0x07878000 |
backman | 7:f990f03bc2b2 | 36 | |
backman | 7:f990f03bc2b2 | 37 | PinName rt, // /RRST |
backman | 7:f990f03bc2b2 | 38 | PinName o, // /OE |
backman | 7:f990f03bc2b2 | 39 | PinName rc // RCLK |
backman | 7:f990f03bc2b2 | 40 | ); |
backman | 7:f990f03bc2b2 | 41 | |
backman | 7:f990f03bc2b2 | 42 | ~OV7670(); |
backman | 7:f990f03bc2b2 | 43 | |
backman | 7:f990f03bc2b2 | 44 | void CaptureNext(void); // capture request |
backman | 7:f990f03bc2b2 | 45 | bool CaptureDone(void); // capture done? (with clear) |
backman | 7:f990f03bc2b2 | 46 | void WriteReg(int addr,int data); // write to camera |
backman | 7:f990f03bc2b2 | 47 | int ReadReg(int addr); // read from camera |
backman | 7:f990f03bc2b2 | 48 | void Reset(void); // reset reg camera |
backman | 7:f990f03bc2b2 | 49 | int Init(char c, int n); // Old init reg |
backman | 7:f990f03bc2b2 | 50 | int Init(char *format, int n); // init reg |
backman | 7:f990f03bc2b2 | 51 | void VsyncHandler(void); // New vsync handler |
backman | 7:f990f03bc2b2 | 52 | void HrefHandler(void); // href handler |
backman | 7:f990f03bc2b2 | 53 | int ReadOnebyte(void); // Data Read |
backman | 7:f990f03bc2b2 | 54 | void ReadStart(void); // Data Start |
backman | 7:f990f03bc2b2 | 55 | void ReadStop(void); // Data Stop |
backman | 7:f990f03bc2b2 | 56 | |
backman | 8:025a9d74a731 | 57 | void InitQQVGA(void); |
backman | 7:f990f03bc2b2 | 58 | private: |
backman | 7:f990f03bc2b2 | 59 | I2C _i2c; |
backman | 7:f990f03bc2b2 | 60 | InterruptIn vsync,href; |
backman | 7:f990f03bc2b2 | 61 | |
backman | 7:f990f03bc2b2 | 62 | DigitalOut wen; |
backman | 8:025a9d74a731 | 63 | BusIn data ; |
backman | 7:f990f03bc2b2 | 64 | DigitalOut rrst,oe,rclk; |
backman | 7:f990f03bc2b2 | 65 | volatile int LineCounter; |
backman | 7:f990f03bc2b2 | 66 | volatile int LastLines; |
backman | 7:f990f03bc2b2 | 67 | volatile bool CaptureReq; |
backman | 7:f990f03bc2b2 | 68 | volatile bool Busy; |
backman | 7:f990f03bc2b2 | 69 | volatile bool Done; |
backman | 7:f990f03bc2b2 | 70 | char *format_temp; |
backman | 7:f990f03bc2b2 | 71 | }; |