bx-cam

Dependencies:   mbed-rtos mbed

Fork of rtos_basic by mbed official

Committer:
backman
Date:
Tue Jul 08 06:21:37 2014 +0000
Revision:
8:025a9d74a731
Parent:
7:f990f03bc2b2
wang

Who changed what in which revision?

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