OV7670 Library
ov7670.h
- Committer:
- kangmingyo
- Date:
- 2019-07-31
- Revision:
- 7:6c66c7f5676d
- Parent:
- 6:8dac6edf2496
File content as of revision 7:6c66c7f5676d:
// // OV7670 library // #pragma once #include "mbed.h" #include "ov7670reg.h" #define OV7670_WRITE (0x42) #define OV7670_READ (0x43) #define OV7670_WRITEWAIT (20) #define OV7670_NOACK (0) #define OV7670_REGMAX (201) #define OV7670_I2CFREQ (100000) class OV7670 { public: OV7670( PinName sda, // Camera I2C port PinName scl, // Camera I2C port PinName vs, // VSYNC PinName hr, // HREF PinName we, // WEN PortName port, // 8bit bus port int mask, // 0b0000_0M65_4000_0321_L000_0000_0000_0000 = 0x07878000 PinName rt, // /RRST PinName o, // /OE PinName pck // PCLK ); ~OV7670(); void CaptureNext(void); // capture request bool CaptureDone(void); // capture done? (with clear) void WriteReg(int addr,int data); // write to camera int ReadReg(int addr); // read from camera void Reset(void); // reset reg camera int Init(char c, int n); // Old init reg int Init(char *format, int n); // init reg void VsyncHandler(void); // New vsync handler void VsyncHandler2(void); void pclkHandler(void); // href handler int ReadOnebyte(void); // Data Read void ReadStart(void); // Data Start void ReadStop(void); // Data Stop // char ram_data[640][480]; InterruptIn vsync,pclk; // uint8_t data_message[76800 ]; private: int _x,_y; // I2C _i2c; I2C _i2c; DigitalOut wen; PortIn data; DigitalOut rrst,oe; DigitalIn href; volatile int LineCounter; volatile int LastLines; volatile bool CaptureReq; volatile bool Busy; volatile bool Done; long cnt; char *format_temp; volatile int flag; };