sssssss

Dependencies:   mbed

Committer:
backman
Date:
Wed Jul 09 07:42:47 2014 +0000
Revision:
0:61a9b89ce451
wang

Who changed what in which revision?

UserRevisionLine numberNew contents of line
backman 0:61a9b89ce451 1 //
backman 0:61a9b89ce451 2 // OV7670 + FIFO AL422B camera board test
backman 0:61a9b89ce451 3 //
backman 0:61a9b89ce451 4 #include "mbed.h"
backman 0:61a9b89ce451 5 #include "ov7670.h"
backman 0:61a9b89ce451 6
backman 0:61a9b89ce451 7 //OV7670 camera(PTE0,PTE1,PTD6,PTD7,PTE31,PTC17,PTC16,PTC13,PTC12,PTC6,PTC5,PTC4,PTC3,PTB8,PTB9,PTB10);
backman 0:61a9b89ce451 8 /*W*///OV7670 camera(PTE0,PTE1,PTD6,PTA17,PTD7,PTC17,PTC16,PTC13,PTC12,PTC6,PTC5,PTC4,PTC3,PTB8,PTB9,PTB10);
backman 0:61a9b89ce451 9 OV7670 camera(PTE0,PTE1,PTD6,PTD7,PTE31,PortC,0x1e3c,PTB8,PTB9,PTB10);
backman 0:61a9b89ce451 10 Serial pc(USBTX,USBRX) ;
backman 0:61a9b89ce451 11
backman 0:61a9b89ce451 12
backman 0:61a9b89ce451 13 #define SIZEX (160)
backman 0:61a9b89ce451 14 #define SIZEY (120)
backman 0:61a9b89ce451 15
backman 0:61a9b89ce451 16 int main() {
backman 0:61a9b89ce451 17 int i ;
backman 0:61a9b89ce451 18 pc.baud(115200) ;
backman 0:61a9b89ce451 19 pc.printf("Camera resetting..\r\n") ;
backman 0:61a9b89ce451 20
backman 0:61a9b89ce451 21 camera.Reset() ;
backman 0:61a9b89ce451 22
backman 0:61a9b89ce451 23 pc.printf("Before Init...\r\n") ;
backman 0:61a9b89ce451 24 pc.printf("AD : +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F") ;
backman 0:61a9b89ce451 25 for (i=0;i<OV7670_REGMAX;i++) {
backman 0:61a9b89ce451 26 int data ;
backman 0:61a9b89ce451 27 data = camera.ReadReg(i) ; // READ REG
backman 0:61a9b89ce451 28 if ((i & 0x0F) == 0) {
backman 0:61a9b89ce451 29 pc.printf("\r\n%02X : ",i) ;
backman 0:61a9b89ce451 30 }
backman 0:61a9b89ce451 31 pc.printf("%02X ",data) ;
backman 0:61a9b89ce451 32 }
backman 0:61a9b89ce451 33 pc.printf("\r\n") ;
backman 0:61a9b89ce451 34
backman 0:61a9b89ce451 35 camera.InitQQVGA() ;
backman 0:61a9b89ce451 36
backman 0:61a9b89ce451 37 pc.printf("After Init...\r\n") ;
backman 0:61a9b89ce451 38 pc.printf("AD : +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F") ;
backman 0:61a9b89ce451 39 for (i=0;i<OV7670_REGMAX;i++) {
backman 0:61a9b89ce451 40 int data ;
backman 0:61a9b89ce451 41 data = camera.ReadReg(i) ; // READ REG
backman 0:61a9b89ce451 42 if ((i & 0x0F) == 0) {
backman 0:61a9b89ce451 43 pc.printf("\r\n%02X : ",i) ;
backman 0:61a9b89ce451 44 }
backman 0:61a9b89ce451 45 pc.printf("%02X ",data) ;
backman 0:61a9b89ce451 46 }
backman 0:61a9b89ce451 47 pc.printf("\r\n") ;
backman 0:61a9b89ce451 48
backman 0:61a9b89ce451 49 // CAPTURE and SEND LOOP
backman 0:61a9b89ce451 50 while(1)
backman 0:61a9b89ce451 51 {
backman 0:61a9b89ce451 52 pc.printf("Hit Any Key to send RGBx160x120 Capture Data.\r\n") ;
backman 0:61a9b89ce451 53 while(!pc.readable()) ;
backman 0:61a9b89ce451 54 pc.getc() ;
backman 0:61a9b89ce451 55 camera.CaptureNext() ;
backman 0:61a9b89ce451 56 while(camera.CaptureDone() == false) ;
backman 0:61a9b89ce451 57 pc.printf("*\r\n") ;
backman 0:61a9b89ce451 58 camera.ReadStart() ;
backman 0:61a9b89ce451 59 i = 0 ;
backman 0:61a9b89ce451 60
backman 0:61a9b89ce451 61
backman 0:61a9b89ce451 62
backman 0:61a9b89ce451 63 for (int y = 0;y < SIZEY;y++) {
backman 0:61a9b89ce451 64 volatile int r,g,b,d1,d2 ;
backman 0:61a9b89ce451 65 for (int x = 0;x < SIZEX;x++) {
backman 0:61a9b89ce451 66 d1 = camera.ReadOneByte() ; // upper nibble is XXX , lower nibble is B
backman 0:61a9b89ce451 67 d2 = camera.ReadOneByte() ; // upper nibble is G , lower nibble is R
backman 0:61a9b89ce451 68 b = (d1 & 0x0F) ;
backman 0:61a9b89ce451 69 g = (d2 & 0xF0) >> 4 ;
backman 0:61a9b89ce451 70 r = (d2 & 0x0F) ;
backman 0:61a9b89ce451 71
backman 0:61a9b89ce451 72
backman 0:61a9b89ce451 73 // pc.printf("%d \r\n",r);
backman 0:61a9b89ce451 74 // pc.printf("%d \r\n",g);
backman 0:61a9b89ce451 75 // pc.printf("%d \r\n",b);
backman 0:61a9b89ce451 76 // pc.printf(" ");
backman 0:61a9b89ce451 77
backman 0:61a9b89ce451 78 // wait_ms(1);
backman 0:61a9b89ce451 79
backman 0:61a9b89ce451 80 //pc.printf("%",camera.ReadOneByte());
backman 0:61a9b89ce451 81
backman 0:61a9b89ce451 82
backman 0:61a9b89ce451 83 pc.printf ("%1X %1X %1X \r\n",r,g,b) ;
backman 0:61a9b89ce451 84 // pc.printf("%1X",r);
backman 0:61a9b89ce451 85
backman 0:61a9b89ce451 86 // if(b<0x03)
backman 0:61a9b89ce451 87 // pc.printf("O");
backman 0:61a9b89ce451 88 // else
backman 0:61a9b89ce451 89 // pc.printf(" ");
backman 0:61a9b89ce451 90
backman 0:61a9b89ce451 91
backman 0:61a9b89ce451 92 /*
backman 0:61a9b89ce451 93 if( b > 7 )
backman 0:61a9b89ce451 94 pc.printf("O");
backman 0:61a9b89ce451 95 else
backman 0:61a9b89ce451 96 pc.printf(" ");
backman 0:61a9b89ce451 97 */
backman 0:61a9b89ce451 98
backman 0:61a9b89ce451 99 /*
backman 0:61a9b89ce451 100 if( b > 12 )
backman 0:61a9b89ce451 101 pc.printf("e");
backman 0:61a9b89ce451 102 else if( b > 9 )
backman 0:61a9b89ce451 103 pc.printf("d");
backman 0:61a9b89ce451 104 else if( b > 6 )
backman 0:61a9b89ce451 105 pc.printf("c");
backman 0:61a9b89ce451 106 else if( b > 3 )
backman 0:61a9b89ce451 107 pc.printf("b");
backman 0:61a9b89ce451 108 else if( b > 0x00 )
backman 0:61a9b89ce451 109 pc.printf("a");
backman 0:61a9b89ce451 110 else
backman 0:61a9b89ce451 111 pc.printf("X");
backman 0:61a9b89ce451 112 */
backman 0:61a9b89ce451 113
backman 0:61a9b89ce451 114 /*
backman 0:61a9b89ce451 115 else if(b > 0x90 )
backman 0:61a9b89ce451 116 pc.printf("9");
backman 0:61a9b89ce451 117 else if( b > 0x80 )
backman 0:61a9b89ce451 118 pc.printf("8");
backman 0:61a9b89ce451 119 else if( b > 0x70 )
backman 0:61a9b89ce451 120 pc.printf("7");
backman 0:61a9b89ce451 121 else if( b > 0x60 )
backman 0:61a9b89ce451 122 pc.printf("6");
backman 0:61a9b89ce451 123 else if(b > 0x50 )
backman 0:61a9b89ce451 124 pc.printf("5");
backman 0:61a9b89ce451 125
backman 0:61a9b89ce451 126 else if( b > 0x40 )
backman 0:61a9b89ce451 127 pc.printf("4");
backman 0:61a9b89ce451 128 else if(b > 0x30 )
backman 0:61a9b89ce451 129 pc.printf("3");
backman 0:61a9b89ce451 130 else if( b > 0x20 )
backman 0:61a9b89ce451 131 pc.printf("2");
backman 0:61a9b89ce451 132 else
backman 0:61a9b89ce451 133 pc.printf("1");
backman 0:61a9b89ce451 134
backman 0:61a9b89ce451 135
backman 0:61a9b89ce451 136 */
backman 0:61a9b89ce451 137
backman 0:61a9b89ce451 138
backman 0:61a9b89ce451 139 // pc.printf("%1X\r\n",camera.ReadOneByte());
backman 0:61a9b89ce451 140
backman 0:61a9b89ce451 141
backman 0:61a9b89ce451 142 }
backman 0:61a9b89ce451 143 pc.printf("\r\n") ;
backman 0:61a9b89ce451 144 }
backman 0:61a9b89ce451 145 camera.ReadStop() ;
backman 0:61a9b89ce451 146 }
backman 0:61a9b89ce451 147 }