ov7670 FIFO from Edoardo De Marchi

Dependents:   3D_Scanner_OV7670_

Fork of OV7670 with FIFO by angelo mottolese

Committer:
rulla
Date:
Tue Oct 03 16:39:42 2017 +0000
Revision:
1:f5f5d7c979cf
Parent:
0:101fbacf126f
ok

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rulla 1:f5f5d7c979cf 1 #pragma once
rulla 0:101fbacf126f 2 #include "mbed.h"
rulla 0:101fbacf126f 3 #include "ov7670reg.h"
rulla 0:101fbacf126f 4
rulla 0:101fbacf126f 5 #define OV7670_WRITE (0x42)
rulla 0:101fbacf126f 6 #define OV7670_READ (0x43)
rulla 0:101fbacf126f 7 #define OV7670_WRITEWAIT (20)
rulla 0:101fbacf126f 8 #define OV7670_NOACK (0)
rulla 0:101fbacf126f 9 #define OV7670_REGMAX (201)
rulla 1:f5f5d7c979cf 10 #define OV7670_I2CFREQ (100000)
rulla 0:101fbacf126f 11
rulla 0:101fbacf126f 12
rulla 0:101fbacf126f 13 //
rulla 0:101fbacf126f 14 // OV7670 + FIFO AL422B camera board test
rulla 0:101fbacf126f 15 //
rulla 0:101fbacf126f 16 class OV7670
rulla 0:101fbacf126f 17 {
rulla 0:101fbacf126f 18
rulla 0:101fbacf126f 19 public:
rulla 1:f5f5d7c979cf 20 OV7670(
rulla 0:101fbacf126f 21 PinName sda,// Camera I2C port
rulla 0:101fbacf126f 22 PinName scl,// Camera I2C port
rulla 0:101fbacf126f 23 PinName vs, // VSYNC
rulla 0:101fbacf126f 24 PinName hr, // HREF
rulla 0:101fbacf126f 25 PinName we, // WEN
rulla 0:101fbacf126f 26 PortName port, // 8bit bus port
rulla 0:101fbacf126f 27 int mask, // 0b0000_0M65_4000_0321_L000_0000_0000_0000 = 0x07878000
rulla 0:101fbacf126f 28 PinName rt, // /RRST
rulla 0:101fbacf126f 29 PinName o, // /OE
rulla 0:101fbacf126f 30 PinName rc // RCLK
rulla 1:f5f5d7c979cf 31 ) ;
rulla 1:f5f5d7c979cf 32
rulla 1:f5f5d7c979cf 33 ~OV7670();
rulla 0:101fbacf126f 34
rulla 1:f5f5d7c979cf 35 void CaptureNext(void);
rulla 1:f5f5d7c979cf 36 bool CaptureDone(void);
rulla 1:f5f5d7c979cf 37 void WriteReg(int addr,char data);
rulla 1:f5f5d7c979cf 38 void Reset(void);
rulla 1:f5f5d7c979cf 39 void test(void);
rulla 1:f5f5d7c979cf 40 void InitQQVGA(int SIZEX);
rulla 1:f5f5d7c979cf 41 char ReadReg(int addr);
rulla 1:f5f5d7c979cf 42 int ReadOneByte(void);
rulla 1:f5f5d7c979cf 43 int ReadOneWord(void);
rulla 1:f5f5d7c979cf 44 void ReadStart(void);
rulla 1:f5f5d7c979cf 45 void ReadStop(void);
rulla 1:f5f5d7c979cf 46 void VsyncHandler(void);
rulla 1:f5f5d7c979cf 47
rulla 1:f5f5d7c979cf 48
rulla 1:f5f5d7c979cf 49 private:
rulla 0:101fbacf126f 50 I2C camera ;
rulla 1:f5f5d7c979cf 51 InterruptIn vsync;
rulla 0:101fbacf126f 52 DigitalIn href;
rulla 0:101fbacf126f 53 DigitalOut wen ;
rulla 0:101fbacf126f 54 PortIn dataP;
rulla 0:101fbacf126f 55 DigitalOut rrst,oe,rclk ;
rulla 1:f5f5d7c979cf 56 volatile int LineCounter;
rulla 1:f5f5d7c979cf 57 volatile int LastLines;
rulla 1:f5f5d7c979cf 58 volatile bool CaptureReq;
rulla 1:f5f5d7c979cf 59 volatile bool Busy;
rulla 1:f5f5d7c979cf 60 volatile bool Done;
rulla 1:f5f5d7c979cf 61 char *format_temp;
rulla 0:101fbacf126f 62 };