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

Dependencies:   EthernetInterface mbed-rtos mbed ov7670

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.h Source File

main.h

00001 #pragma once 
00002 #include "mbed.h"
00003 #include "ov7670.h"
00004 #include "EthernetInterface.h"
00005 
00006 
00007 #define ECHO_SERVER_PORT   2000
00008 
00009 
00010 Timer t;
00011 bool new_send = false;
00012 
00013 DigitalOut led1(LED1);
00014 DigitalOut led2(LED2);
00015 DigitalOut led3(LED3);
00016 DigitalOut led4(LED4);
00017 
00018 
00019 //Camera
00020 OV7670 camera
00021 (
00022     p28,p27,                // SDA,SCL(I2C / SCCB)
00023     p23,NC,p25,             // VSYNC,HREF,WEN(FIFO)  
00024     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)
00025     p26,p29,p30             // RRST,OE,RCLK
00026 ); 
00027 
00028 
00029 //ETHERNET
00030 char* ip = "192.168.153.153";             // ip
00031 char* mask = "255.255.255.0";           // mask
00032 char* gateway = "192.168.153.130";          // gateway
00033 EthernetInterface eth;
00034 TCPSocketConnection client;
00035 TCPSocketServer server; 
00036 
00037 
00038 //ETHERNET BUFFER
00039 char bufferRX[20];
00040 char bufferTX[4800];
00041 
00042 char *StartCondition = "sRt";        // START
00043 bool bGrab_on = false;
00044 bool bSnap_on = false;
00045 
00046 
00047 //RESET
00048 extern "C" void mbed_reset();
00049 
00050 
00051 //TIMER
00052 int t1 = 0; 
00053 int t2 = 0;
00054 
00055 
00056 //THREAD
00057 void Net_Thread(void const *argument);
00058 void Grab_Thread(void const *argument);
00059 osThreadId tencid;
00060 osThreadDef(Net_Thread, osPriorityNormal, DEFAULT_STACK_SIZE); 
00061 osThreadDef(Grab_Thread, osPriorityNormal, DEFAULT_STACK_SIZE);
00062 
00063 
00064 //FUNCTION
00065 void Send();
00066 void parse_cmd(int sizeCMD);
00067 void CameraSnap();
00068 void CameraGrab();
00069 
00070 
00071 struct CameraSet
00072 {
00073     char format[3];
00074     int resolution;
00075 }CMDCamera;
00076 
00077 
00078 struct Register
00079 {
00080     char type;
00081     int addr;
00082     int value;
00083 }Reg;