sssssss

Dependencies:   mbed

main.cpp

Committer:
backman
Date:
2014-07-09
Revision:
0:61a9b89ce451

File content as of revision 0:61a9b89ce451:

//
// OV7670 + FIFO AL422B camera board test
//
#include "mbed.h"
#include "ov7670.h"

 //OV7670 camera(PTE0,PTE1,PTD6,PTD7,PTE31,PTC17,PTC16,PTC13,PTC12,PTC6,PTC5,PTC4,PTC3,PTB8,PTB9,PTB10); 
/*W*///OV7670 camera(PTE0,PTE1,PTD6,PTA17,PTD7,PTC17,PTC16,PTC13,PTC12,PTC6,PTC5,PTC4,PTC3,PTB8,PTB9,PTB10);
OV7670 camera(PTE0,PTE1,PTD6,PTD7,PTE31,PortC,0x1e3c,PTB8,PTB9,PTB10); 
Serial pc(USBTX,USBRX) ;


#define SIZEX (160)
#define SIZEY (120)

int main() {
    int i ;
    pc.baud(115200) ;
    pc.printf("Camera resetting..\r\n") ;

    camera.Reset() ;

    pc.printf("Before Init...\r\n") ;    
    pc.printf("AD : +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F") ;
    for (i=0;i<OV7670_REGMAX;i++) {
        int data ;
        data = camera.ReadReg(i) ; // READ REG
        if ((i & 0x0F) == 0) {
            pc.printf("\r\n%02X : ",i) ;
        }
        pc.printf("%02X ",data) ;
    }
    pc.printf("\r\n") ;

    camera.InitQQVGA() ;

    pc.printf("After Init...\r\n") ;    
    pc.printf("AD : +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F") ;
    for (i=0;i<OV7670_REGMAX;i++) {
        int data ;
        data = camera.ReadReg(i) ; // READ REG
        if ((i & 0x0F) == 0) {
            pc.printf("\r\n%02X : ",i) ;
        }
        pc.printf("%02X ",data) ;
    }
    pc.printf("\r\n") ;
    
    // CAPTURE and SEND LOOP
    while(1)
    {
        pc.printf("Hit Any Key to send RGBx160x120 Capture Data.\r\n") ;
        while(!pc.readable()) ;
        pc.getc() ;
        camera.CaptureNext() ;
        while(camera.CaptureDone() == false) ;
        pc.printf("*\r\n") ;
        camera.ReadStart() ;
        i = 0 ;
        
        
        
        for (int y = 0;y < SIZEY;y++) {
           volatile int r,g,b,d1,d2 ;
            for (int x = 0;x < SIZEX;x++) {
               d1 = camera.ReadOneByte() ; // upper nibble is XXX , lower nibble is B
                d2 = camera.ReadOneByte() ; // upper nibble is G   , lower nibble is R
                b = (d1 & 0x0F) ;
                g = (d2 & 0xF0) >> 4 ;
                r = (d2 & 0x0F) ;
                
                
          //      pc.printf("%d \r\n",r);
          //       pc.printf("%d \r\n",g);
          //        pc.printf("%d \r\n",b);
          //        pc.printf(" ");
                
         //         wait_ms(1);
                
          //pc.printf("%",camera.ReadOneByte());
           
                  
               pc.printf ("%1X %1X %1X \r\n",r,g,b) ;
              //    pc.printf("%1X",r);           
           
           //   if(b<0x03)
            //      pc.printf("O");
            //  else
            //      pc.printf(" ");    
            
            
            /*
                if( b  > 7 )
                        pc.printf("O");
               else 
                      pc.printf(" ");
              */      
            
            /*
                if( b  > 12 )
                        pc.printf("e");
               else if( b  > 9 )
                      pc.printf("d");    
                else if( b  > 6 )
                      pc.printf("c"); 
                 else if( b  > 3 )
                      pc.printf("b"); 
                  else if( b  > 0x00 )       
                        pc.printf("a");
                  else
                        pc.printf("X");      
              */          
                        
                 /*        
                   else if(b > 0x90 )
                    pc.printf("9"); 
                    else if( b  > 0x80 )
                     pc.printf("8"); 
                     else if( b  > 0x70 )
                      pc.printf("7"); 
                      else if( b  > 0x60 )
                       pc.printf("6"); 
                       else if(b  > 0x50 )
                        pc.printf("5"); 
                       
                        else if( b  > 0x40 )
                         pc.printf("4"); 
                         else if(b  > 0x30 )
                          pc.printf("3"); 
                          else if( b  > 0x20 )
                      pc.printf("2"); 
                          else
                           pc.printf("1"); 
              
            
            */
            
            
          //  pc.printf("%1X\r\n",camera.ReadOneByte());
            
           
            }
            pc.printf("\r\n") ;
        }
        camera.ReadStop() ;        
    }
}