ov7670 no fifo

Dependents:   OV7670_Nucleo

Committer:
rulla
Date:
Mon Apr 20 15:04:18 2020 +0000
Revision:
2:90b79650f69d
new

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rulla 2:90b79650f69d 1 #pragma once
rulla 2:90b79650f69d 2 #include "mbed.h"
rulla 2:90b79650f69d 3 #include "OV7670reg.h"
rulla 2:90b79650f69d 4 //
rulla 2:90b79650f69d 5 // OV7670
rulla 2:90b79650f69d 6
rulla 2:90b79650f69d 7 class OV7670
rulla 2:90b79650f69d 8 {
rulla 2:90b79650f69d 9 public:
rulla 2:90b79650f69d 10
rulla 2:90b79650f69d 11 volatile int LineCounter ;
rulla 2:90b79650f69d 12 volatile int LastLines ;
rulla 2:90b79650f69d 13 volatile bool CaptureReq ;
rulla 2:90b79650f69d 14 volatile bool Busy ;
rulla 2:90b79650f69d 15 volatile bool Done ;
rulla 2:90b79650f69d 16 volatile int PixCounter;
rulla 2:90b79650f69d 17 void CaptureNext(void);
rulla 2:90b79650f69d 18 bool CaptureDone(void);
rulla 2:90b79650f69d 19 void WriteReg(int addr,char data);
rulla 2:90b79650f69d 20 void Reset(float frequ);
rulla 2:90b79650f69d 21 void test(void);
rulla 2:90b79650f69d 22 void Init(float frequ,int sizeX);
rulla 2:90b79650f69d 23 void Init2(void);
rulla 2:90b79650f69d 24 char ReadReg(int addr);
rulla 2:90b79650f69d 25 uint8_t ReadOneByte(void);
rulla 2:90b79650f69d 26 int ReadOneWord(void);
rulla 2:90b79650f69d 27 void ReadStart(void);
rulla 2:90b79650f69d 28 void ReadStop(void);
rulla 2:90b79650f69d 29 void VsyncHandler(void);
rulla 2:90b79650f69d 30 void HrefHandler(void);
rulla 2:90b79650f69d 31 void PclkHandler(void) ;
rulla 2:90b79650f69d 32 void wait_posedge(InterruptIn pin);
rulla 2:90b79650f69d 33 void wait_negedge(InterruptIn pin);
rulla 2:90b79650f69d 34 void shot(int sizeX, int sizeY,uint8_t *bank0);
rulla 2:90b79650f69d 35
rulla 2:90b79650f69d 36 OV7670(
rulla 2:90b79650f69d 37 PinName sda,// Camera I2C port
rulla 2:90b79650f69d 38 PinName scl,// Camera I2C port
rulla 2:90b79650f69d 39 /*
rulla 2:90b79650f69d 40 PinName vs, // VSYNC
rulla 2:90b79650f69d 41 PinName hr, // HREF
rulla 2:90b79650f69d 42 PinName pic ,// /pclk
rulla 2:90b79650f69d 43 */
rulla 2:90b79650f69d 44 PortName ports, // 8bit bus port
rulla 2:90b79650f69d 45 int masks,
rulla 2:90b79650f69d 46 PortName port, // 8bit bus port
rulla 2:90b79650f69d 47 int mask
rulla 2:90b79650f69d 48 ) : camera(sda,scl),sync(ports,masks),dataP(port,mask)
rulla 2:90b79650f69d 49
rulla 2:90b79650f69d 50 {
rulla 2:90b79650f69d 51
rulla 2:90b79650f69d 52
rulla 2:90b79650f69d 53
rulla 2:90b79650f69d 54 camera.stop() ;
rulla 2:90b79650f69d 55 camera.frequency(OV7670_I2CFREQ) ;
rulla 2:90b79650f69d 56 // vsync.fall(this,&OV7670::VsyncHandler) ;
rulla 2:90b79650f69d 57 // href.rise(callback(this, &OV7670::HrefHandler)) ;
rulla 2:90b79650f69d 58 // pclk.rise(this,&OV7670::PclkHandler) ; // ????????????? blocca tutto il programma
rulla 2:90b79650f69d 59 CaptureReq = false ;
rulla 2:90b79650f69d 60 Busy = false ;
rulla 2:90b79650f69d 61 Done = false ;
rulla 2:90b79650f69d 62 LineCounter = 0 ;
rulla 2:90b79650f69d 63 camera.start();
rulla 2:90b79650f69d 64 }
rulla 2:90b79650f69d 65 protected:
rulla 2:90b79650f69d 66 I2C camera ;
rulla 2:90b79650f69d 67 //InterruptIn vsync,href,pclk;
rulla 2:90b79650f69d 68 PortIn sync;
rulla 2:90b79650f69d 69 /*
rulla 2:90b79650f69d 70 DigitalIn vsync;
rulla 2:90b79650f69d 71 DigitalIn href;
rulla 2:90b79650f69d 72 DigitalIn pclk;
rulla 2:90b79650f69d 73 */
rulla 2:90b79650f69d 74 PortIn dataP;
rulla 2:90b79650f69d 75 };