Keisuke Fujii
/
OV7670_register_set
read.h
- Committer:
- Keisuke_Fujii
- Date:
- 2011-12-12
- Revision:
- 1:9c7022a05ab2
- Parent:
- 0:579e5a58b159
File content as of revision 1:9c7022a05ab2:
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, 0x12, 1, 0x80 ); //reset } void tran_frame( void ) { OV7670.stop(); OV7670.frequency( 200000 ); wait_ms( 10 ); i2c( WRITE, 0x12, 1, 0x80 ); //reset 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 ); //48[MHz] -> 12[MHz] //i2c( WRITE, 0x11, 1, 0x80 ); //24[MHz] -> 24[MHz] } 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; led = 0xff; } else { i = 1; led << 1; } } led = 0x00; 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; }