Dependencies:   mbed

Revision:
0:579e5a58b159
Child:
1:9c7022a05ab2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/read.h	Mon Jun 13 08:11:07 2011 +0000
@@ -0,0 +1,109 @@
+void tran_frame( void );
+void     camera( void );
+void        i2c( char, int, int, char );
+void      write( char );
+void       read( int );
+void      start( void );
+void       stop( void );
+
+char WRITE = 0x42;
+char READ = 0x43;
+int i = 1, j = 0;
+unsigned char data[201];
+unsigned short int byte = 0x00;
+
+void reset( void )
+{
+    OV7670.stop();
+    OV7670.frequency( 300000 );
+    wait_ms( 10 );
+    
+    i2c( WRITE, 18, 1, 0x80 );
+}
+
+void tran_frame( void )
+{
+    OV7670.stop();
+    OV7670.frequency( 300000 );
+    wait_ms( 10 );
+    
+    i2c( WRITE, 0x12, 1, 0x80 );
+    wait_ms( 10 );
+    /*i2c( WRITE, 0x12, 1, 0x08 );
+    wait_ms( 10 );
+    //i2c( WRITE, 0x18, 1, 0x27 );    //HSTOP
+    wait_ms( 10 );
+    //i2c( WRITE, 0x1A, 1, 0x27 );    //VSTOP*/
+    i2c( WRITE, 0x11, 1, 0x83 );
+}
+
+void camera( void )
+{
+    OV7670.stop();
+    OV7670.frequency( 300000 );
+    wait_ms( 10 );
+    for( int a = 0; a < 202; a ++ )
+    {
+        i2c( WRITE, a, 0, 0 );
+        i2c(  READ, a, 0, 0 );
+        //wait_ms( 10 );
+    }
+    for( int b = 1; b <= 202; b ++ )
+    {
+        device.printf("|%s : %2x ", address_name[b], data[b - 1]);
+        if( ( b % 6 ) == 0 )
+        {
+            device.printf("|\n");
+        }
+        if( b == 202 )  device.printf("|\n");
+    }
+}
+
+void i2c( char mode, int a, int flag, char data )
+{
+    OV7670.start();
+    while( i )
+    {
+        if( OV7670.write( mode ) == 1 )
+        {
+            i = 0;
+        }
+        else
+        {
+            i = 1;
+        }
+    }
+    i = 1;
+    if( mode == 0x42 ) 
+    {
+        write( address[a] );
+        if( flag == 1 )
+        {
+            write( data );
+        }
+    }
+    else if( mode == 0x43 ) read( a );
+    OV7670.stop();
+}
+
+void write( char reg_add )
+{
+    while( i )
+    {
+        if( OV7670.write( reg_add ) == 1 )
+        {
+            i = 0;
+        }
+        else
+        {
+            i = 1;
+        }
+    }
+    i = 1;
+}
+
+void read( int a )
+{
+    data[a] = OV7670.read( 0 );
+    i = 1;
+}
\ No newline at end of file