ov7670 FIFO from Edoardo De Marchi
Dependents: 3D_Scanner_OV7670_
Fork of OV7670 with FIFO by
Diff: OV7670.h
- Revision:
- 0:101fbacf126f
- Child:
- 1:f5f5d7c979cf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/OV7670.h Wed Nov 16 10:37:49 2016 +0000 @@ -0,0 +1,70 @@ +#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 (50000) + + +// +// OV7670 + FIFO AL422B camera board test +// +class OV7670 +{ + +public: +volatile int LineCounter ; + volatile int LastLines ; + volatile bool CaptureReq ; + volatile bool Busy ; + volatile bool Done ; + void CaptureNext(void); + bool CaptureDone(void); + void WriteReg(int addr,char data); + void Reset(void); + void test(void); + void InitQQVGA(void); + char ReadReg(int addr); + int ReadOneByte(void); + void ReadStart(void); + void ReadStop(void); + void VsyncHandler(void); + InterruptIn vsync; + + 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 rc // RCLK + ) : camera(sda,scl),vsync(vs),href(hr),wen(we),dataP(port,mask),rrst(rt),oe(o),rclk(rc) + { + //camera.stop() ; + camera.frequency(OV7670_I2CFREQ) ; + // camera.start() ; + + CaptureReq = false ; + Busy = false ; + Done = false ; + LineCounter = 0 ; + rrst = 1 ; + oe = 1 ; + rclk = 1 ; + wen = 0 ; + vsync.rise(this,&OV7670::VsyncHandler) ; + } +protected: + I2C camera ; + DigitalIn href; + DigitalOut wen ; + PortIn dataP; + DigitalOut rrst,oe,rclk ; + };