Test Code for OV7670 Camera module. The images are sent over ethernet link.

Dependencies:   EthernetInterface mbed-rtos mbed ov7670

You can find more information in this page: https://mbed.org/users/edodm85/notebook/ov7670-camera-and-ethernet-stream/

Committer:
edodm85
Date:
Sat Apr 05 14:02:07 2014 +0000
Revision:
3:df8de18d7fa9
Parent:
2:d6b38a4512eb
Updated for "OV7670 Grabber v2.0"

Who changed what in which revision?

UserRevisionLine numberNew contents of line
edodm85 0:2208b72b1ba1 1 #pragma once
edodm85 0:2208b72b1ba1 2 #include "mbed.h"
edodm85 0:2208b72b1ba1 3 #include "ov7670.h"
edodm85 0:2208b72b1ba1 4 #include "EthernetInterface.h"
edodm85 0:2208b72b1ba1 5
edodm85 0:2208b72b1ba1 6
edodm85 0:2208b72b1ba1 7 #define ECHO_SERVER_PORT 2000
edodm85 0:2208b72b1ba1 8
edodm85 0:2208b72b1ba1 9
edodm85 0:2208b72b1ba1 10 Timer t;
edodm85 0:2208b72b1ba1 11 bool new_send = false;
edodm85 0:2208b72b1ba1 12
edodm85 0:2208b72b1ba1 13 DigitalOut led1(LED1);
edodm85 0:2208b72b1ba1 14 DigitalOut led2(LED2);
edodm85 0:2208b72b1ba1 15 DigitalOut led3(LED3);
edodm85 0:2208b72b1ba1 16 DigitalOut led4(LED4);
edodm85 0:2208b72b1ba1 17
edodm85 3:df8de18d7fa9 18
edodm85 0:2208b72b1ba1 19 //Camera
edodm85 0:2208b72b1ba1 20 OV7670 camera
edodm85 0:2208b72b1ba1 21 (
edodm85 3:df8de18d7fa9 22 p28,p27, // SDA,SCL(I2C / SCCB)
edodm85 3:df8de18d7fa9 23 p23,NC,p25, // VSYNC,HREF,WEN(FIFO)
edodm85 3:df8de18d7fa9 24 Port0,0x07878000, // PortIn data p18(P0.26),p17(P0.25),p16(P0.24),p15(P0.23),p11(P0.18),p12(P0.17),p14(P0.16),p13(P0.15)
edodm85 3:df8de18d7fa9 25 p26,p29,p30 // RRST,OE,RCLK
edodm85 0:2208b72b1ba1 26 );
edodm85 0:2208b72b1ba1 27
edodm85 3:df8de18d7fa9 28
edodm85 0:2208b72b1ba1 29 //ETHERNET
edodm85 0:2208b72b1ba1 30 char* ip = "192.168.153.153"; // ip
edodm85 0:2208b72b1ba1 31 char* mask = "255.255.255.0"; // mask
edodm85 2:d6b38a4512eb 32 char* gateway = "192.168.153.130"; // gateway
edodm85 0:2208b72b1ba1 33 EthernetInterface eth;
edodm85 0:2208b72b1ba1 34 TCPSocketConnection client;
edodm85 0:2208b72b1ba1 35 TCPSocketServer server;
edodm85 0:2208b72b1ba1 36
edodm85 3:df8de18d7fa9 37
edodm85 0:2208b72b1ba1 38 //ETHERNET BUFFER
edodm85 0:2208b72b1ba1 39 char bufferRX[20];
edodm85 2:d6b38a4512eb 40 char bufferTX[4800];
edodm85 0:2208b72b1ba1 41
edodm85 3:df8de18d7fa9 42 char *StartCondition = "sRt"; // START
edodm85 3:df8de18d7fa9 43 bool bGrab_on = false;
edodm85 3:df8de18d7fa9 44 bool bSnap_on = false;
edodm85 3:df8de18d7fa9 45
edodm85 3:df8de18d7fa9 46
edodm85 0:2208b72b1ba1 47 //RESET
edodm85 0:2208b72b1ba1 48 extern "C" void mbed_reset();
edodm85 0:2208b72b1ba1 49
edodm85 3:df8de18d7fa9 50
edodm85 0:2208b72b1ba1 51 //TIMER
edodm85 0:2208b72b1ba1 52 int t1 = 0;
edodm85 0:2208b72b1ba1 53 int t2 = 0;
edodm85 0:2208b72b1ba1 54
edodm85 3:df8de18d7fa9 55
edodm85 0:2208b72b1ba1 56 //THREAD
edodm85 3:df8de18d7fa9 57 void Net_Thread(void const *argument);
edodm85 3:df8de18d7fa9 58 void Grab_Thread(void const *argument);
edodm85 3:df8de18d7fa9 59 osThreadId tencid;
edodm85 3:df8de18d7fa9 60 osThreadDef(Net_Thread, osPriorityNormal, DEFAULT_STACK_SIZE);
edodm85 3:df8de18d7fa9 61 osThreadDef(Grab_Thread, osPriorityNormal, DEFAULT_STACK_SIZE);
edodm85 3:df8de18d7fa9 62
edodm85 0:2208b72b1ba1 63
edodm85 0:2208b72b1ba1 64 //FUNCTION
edodm85 0:2208b72b1ba1 65 void Send();
edodm85 3:df8de18d7fa9 66 void parse_cmd(int sizeCMD);
edodm85 0:2208b72b1ba1 67 void CameraSnap();
edodm85 3:df8de18d7fa9 68 void CameraGrab();
edodm85 3:df8de18d7fa9 69
edodm85 3:df8de18d7fa9 70
edodm85 3:df8de18d7fa9 71 struct CameraSet
edodm85 3:df8de18d7fa9 72 {
edodm85 3:df8de18d7fa9 73 char format[3];
edodm85 3:df8de18d7fa9 74 int resolution;
edodm85 3:df8de18d7fa9 75 }CMDCamera;
edodm85 3:df8de18d7fa9 76
edodm85 3:df8de18d7fa9 77
edodm85 3:df8de18d7fa9 78 struct Register
edodm85 3:df8de18d7fa9 79 {
edodm85 3:df8de18d7fa9 80 char type;
edodm85 3:df8de18d7fa9 81 int addr;
edodm85 3:df8de18d7fa9 82 int value;
edodm85 3:df8de18d7fa9 83 }Reg;