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/
main.h@3:df8de18d7fa9, 2014-04-05 (annotated)
- 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?
User | Revision | Line number | New 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; |