OV7670 + 23LC1024 + Bluetooth
Dependencies: FastPWM MODSERIAL mbed
OV7670.h@2:a7f5fa80a385, 2013-07-23 (annotated)
- Committer:
- sampullman
- Date:
- Tue Jul 23 06:36:50 2013 +0000
- Revision:
- 2:a7f5fa80a385
- Parent:
- 1:6e4d2cff76e8
Fixed OV7670.cpp file name
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
sampullman | 0:f309a2b2f27b | 1 | #include "mbed.h" |
sampullman | 0:f309a2b2f27b | 2 | #include "OV7670reg.h" |
sampullman | 0:f309a2b2f27b | 3 | #include "FastPWM.h" |
sampullman | 1:6e4d2cff76e8 | 4 | #include "spi_ram.h" |
sampullman | 0:f309a2b2f27b | 5 | |
sampullman | 0:f309a2b2f27b | 6 | #define OV7670_WRITE (0x42) |
sampullman | 0:f309a2b2f27b | 7 | #define OV7670_READ (0x43) |
sampullman | 0:f309a2b2f27b | 8 | #define OV7670_WRITEWAIT (20) |
sampullman | 0:f309a2b2f27b | 9 | #define OV7670_NOACK (0) |
sampullman | 0:f309a2b2f27b | 10 | #define OV7670_REGMAX (201) |
sampullman | 0:f309a2b2f27b | 11 | #define OV7670_I2CFREQ (50000) |
sampullman | 0:f309a2b2f27b | 12 | |
sampullman | 0:f309a2b2f27b | 13 | // |
sampullman | 0:f309a2b2f27b | 14 | // OV7670 Camera board test (no FIFO) |
sampullman | 0:f309a2b2f27b | 15 | // |
sampullman | 0:f309a2b2f27b | 16 | class OV7670 { |
sampullman | 0:f309a2b2f27b | 17 | public: |
sampullman | 0:f309a2b2f27b | 18 | I2C camera; |
sampullman | 0:f309a2b2f27b | 19 | PinName xclkPin; |
sampullman | 0:f309a2b2f27b | 20 | PortIn data, inPort; |
sampullman | 1:6e4d2cff76e8 | 21 | SPI spi; |
sampullman | 1:6e4d2cff76e8 | 22 | SRAM ram; |
sampullman | 1:6e4d2cff76e8 | 23 | int size; |
sampullman | 0:f309a2b2f27b | 24 | |
sampullman | 0:f309a2b2f27b | 25 | OV7670( |
sampullman | 0:f309a2b2f27b | 26 | PinName sda, // Camera I2C port |
sampullman | 0:f309a2b2f27b | 27 | PinName scl, // Camera I2C port |
sampullman | 0:f309a2b2f27b | 28 | PinName xclk,// Camera XCLK |
sampullman | 0:f309a2b2f27b | 29 | PinName pclkPin,// PCLK |
sampullman | 0:f309a2b2f27b | 30 | PinName vs, // VSYNC |
sampullman | 0:f309a2b2f27b | 31 | PinName hr, // HREF |
sampullman | 0:f309a2b2f27b | 32 | |
sampullman | 0:f309a2b2f27b | 33 | PortName port, // 8bit bus port |
sampullman | 0:f309a2b2f27b | 34 | int mask // 0000 0111 4000 0111 1000 0000 0000 0000 = 0x07878000 |
sampullman | 0:f309a2b2f27b | 35 | ); |
sampullman | 0:f309a2b2f27b | 36 | |
sampullman | 0:f309a2b2f27b | 37 | void Init(); |
sampullman | 0:f309a2b2f27b | 38 | |
sampullman | 0:f309a2b2f27b | 39 | // write to camera |
sampullman | 0:f309a2b2f27b | 40 | void WriteReg(int addr, int data); |
sampullman | 0:f309a2b2f27b | 41 | |
sampullman | 0:f309a2b2f27b | 42 | // read from camera |
sampullman | 0:f309a2b2f27b | 43 | int ReadReg(int addr); |
sampullman | 0:f309a2b2f27b | 44 | |
sampullman | 0:f309a2b2f27b | 45 | void Reset(void); |
sampullman | 0:f309a2b2f27b | 46 | |
sampullman | 0:f309a2b2f27b | 47 | void InitQQVGA(); |
sampullman | 0:f309a2b2f27b | 48 | |
sampullman | 0:f309a2b2f27b | 49 | void scopeTest(Serial *host); |
sampullman | 0:f309a2b2f27b | 50 | |
sampullman | 1:6e4d2cff76e8 | 51 | // Capture image to external SRAM. Returns number of bytes received |
sampullman | 1:6e4d2cff76e8 | 52 | int captureImage(); |
sampullman | 1:6e4d2cff76e8 | 53 | |
sampullman | 1:6e4d2cff76e8 | 54 | void sendImage(Serial *dest, int numBytes); |
sampullman | 0:f309a2b2f27b | 55 | |
sampullman | 0:f309a2b2f27b | 56 | }; |