test

Dependencies:   zbar_010

Fork of ov7670 by Edoardo De Marchi

Committer:
levkovigor
Date:
Mon Sep 25 12:38:33 2017 +0000
Revision:
5:a940d64a408b
Parent:
1:d82dbad9c06b
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
edodm85 0:810d59d0b843 1 //
edodm85 0:810d59d0b843 2 // OV7670 library
edodm85 0:810d59d0b843 3 //
edodm85 0:810d59d0b843 4
edodm85 0:810d59d0b843 5 #pragma once
edodm85 0:810d59d0b843 6 #include "mbed.h"
edodm85 0:810d59d0b843 7 #include "ov7670reg.h"
edodm85 0:810d59d0b843 8
edodm85 0:810d59d0b843 9 #define OV7670_WRITE (0x42)
edodm85 0:810d59d0b843 10 #define OV7670_READ (0x43)
edodm85 0:810d59d0b843 11 #define OV7670_WRITEWAIT (20)
edodm85 0:810d59d0b843 12 #define OV7670_NOACK (0)
edodm85 0:810d59d0b843 13 #define OV7670_REGMAX (201)
edodm85 0:810d59d0b843 14 #define OV7670_I2CFREQ (100000)
edodm85 0:810d59d0b843 15
edodm85 0:810d59d0b843 16
edodm85 0:810d59d0b843 17 class OV7670
edodm85 0:810d59d0b843 18 {
edodm85 0:810d59d0b843 19 public:
edodm85 0:810d59d0b843 20
levkovigor 5:a940d64a408b 21 OV7670(
levkovigor 5:a940d64a408b 22 PinName sda, // Camera I2C port
levkovigor 5:a940d64a408b 23 PinName scl, // Camera I2C port
levkovigor 5:a940d64a408b 24 PinName vs, // VSYNC
levkovigor 5:a940d64a408b 25 PinName hr, // HREF
levkovigor 5:a940d64a408b 26 PinName we, // WEN
levkovigor 5:a940d64a408b 27
levkovigor 5:a940d64a408b 28 //PortName port, // 8bit bus port
levkovigor 5:a940d64a408b 29 //int mask, // 0b0000_0M65_4000_0321_L000_0000_0000_0000 = 0x07878000
levkovigor 5:a940d64a408b 30 PinName d7, // D7
levkovigor 5:a940d64a408b 31 PinName d6, // D6
levkovigor 5:a940d64a408b 32 PinName d5, // D5
levkovigor 5:a940d64a408b 33 PinName d4, // D4
levkovigor 5:a940d64a408b 34 PinName d3, // D3
levkovigor 5:a940d64a408b 35 PinName d2, // D2
levkovigor 5:a940d64a408b 36 PinName d1, // D1
levkovigor 5:a940d64a408b 37 PinName d0, // D0
levkovigor 5:a940d64a408b 38
levkovigor 5:a940d64a408b 39 PinName rt, // /RRST
levkovigor 5:a940d64a408b 40 PinName o, // /OE
levkovigor 5:a940d64a408b 41 PinName rc // RCLK
levkovigor 5:a940d64a408b 42 );
levkovigor 5:a940d64a408b 43
levkovigor 5:a940d64a408b 44 /*OV7670(
edodm85 0:810d59d0b843 45 PinName sda, // Camera I2C port
edodm85 0:810d59d0b843 46 PinName scl, // Camera I2C port
edodm85 0:810d59d0b843 47 PinName vs, // VSYNC
edodm85 0:810d59d0b843 48 PinName hr, // HREF
edodm85 0:810d59d0b843 49 PinName we, // WEN
edodm85 0:810d59d0b843 50
edodm85 0:810d59d0b843 51 PortName port, // 8bit bus port
edodm85 0:810d59d0b843 52 int mask, // 0b0000_0M65_4000_0321_L000_0000_0000_0000 = 0x07878000
edodm85 0:810d59d0b843 53
edodm85 0:810d59d0b843 54 PinName rt, // /RRST
edodm85 0:810d59d0b843 55 PinName o, // /OE
edodm85 0:810d59d0b843 56 PinName rc // RCLK
edodm85 0:810d59d0b843 57 );
levkovigor 5:a940d64a408b 58 */
edodm85 0:810d59d0b843 59 ~OV7670();
edodm85 0:810d59d0b843 60
edodm85 0:810d59d0b843 61 void CaptureNext(void); // capture request
edodm85 0:810d59d0b843 62 bool CaptureDone(void); // capture done? (with clear)
edodm85 0:810d59d0b843 63 void WriteReg(int addr,int data); // write to camera
edodm85 0:810d59d0b843 64 int ReadReg(int addr); // read from camera
edodm85 0:810d59d0b843 65 void Reset(void); // reset reg camera
edodm85 1:d82dbad9c06b 66 int Init(char c, int n); // init reg
edodm85 0:810d59d0b843 67 void VsyncHandler(void); // vsync handler
edodm85 0:810d59d0b843 68 void HrefHandler(void); // href handler
edodm85 0:810d59d0b843 69 int ReadOnebyte(void); // Data Read
edodm85 0:810d59d0b843 70 void ReadStart(void); // Data Start
edodm85 0:810d59d0b843 71 void ReadStop(void); // Data Stop
edodm85 0:810d59d0b843 72
edodm85 0:810d59d0b843 73
edodm85 0:810d59d0b843 74 private:
edodm85 0:810d59d0b843 75 I2C _i2c;
edodm85 0:810d59d0b843 76 InterruptIn vsync,href;
edodm85 0:810d59d0b843 77
edodm85 0:810d59d0b843 78 DigitalOut wen;
levkovigor 5:a940d64a408b 79 //PortIn data;
levkovigor 5:a940d64a408b 80 BusIn data;
edodm85 0:810d59d0b843 81 DigitalOut rrst,oe,rclk;
edodm85 0:810d59d0b843 82 volatile int LineCounter;
edodm85 0:810d59d0b843 83 volatile int LastLines;
edodm85 0:810d59d0b843 84 volatile bool CaptureReq;
edodm85 0:810d59d0b843 85 volatile bool Busy;
edodm85 0:810d59d0b843 86 volatile bool Done;
edodm85 0:810d59d0b843 87 };