Test Code for OV7670 Camera module. The images are sent over ethernet link.
Dependencies: EthernetInterface mbed-rtos mbed ov7670
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;
Generated on Fri Jul 15 2022 21:20:35 by 1.7.2