Tedd OKANO / Mbed 2 deprecated MARY_CAMERA_Hello

Dependencies:   MARY_CAMERA NokiaLCD mbed

Committer:
okano
Date:
Tue Feb 18 09:54:04 2014 +0000
Revision:
12:6ddd07d59c55
Parent:
11:149993faf2be
Child:
21:a2ac746dd516
test code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okano 0:1062142e5718 1 #include "mbed.h"
okano 0:1062142e5718 2 #include "MARMEX_OB_oled.h"
okano 4:5e1828a8e238 3 #include "MARY_CAMERA.h"
okano 3:152362acd181 4
okano 4:5e1828a8e238 5 MARMEX_OB_oled oled1( p5, p7, p20, p16, p15 ); // mosi, sclk, cs, rst, power_control -- maple-mini-type-b-slot1
okano 6:f5b4e088087b 6 MARY_CAMERA camera( p5, p6, p7, p22, p26, p28, p27 ); // mosi, miso, sclk, cs, reset, I2C_SDA, I2C_SCL
okano 9:68408189efde 7 BusOut led( LED3, LED4 );
okano 1:ce27bc7b44d4 8
okano 9:68408189efde 9 #define X_OFFSET ((MARY_CAMERA::PIXEL_PER_LINE - MARMEX_OB_oled::WIDTH ) / 2)
okano 9:68408189efde 10 #define Y_OFFSET ((MARY_CAMERA::LINE_PER_FRAME - MARMEX_OB_oled::HEIGHT) / 2)
okano 9:68408189efde 11
okano 9:68408189efde 12 void line_mirroring( short *buf );
okano 10:3c8fc9569377 13 void save_still_image( char *file_name );
okano 0:1062142e5718 14
okano 0:1062142e5718 15 int main()
okano 0:1062142e5718 16 {
okano 6:f5b4e088087b 17 led = 0x3;
okano 6:f5b4e088087b 18
okano 1:ce27bc7b44d4 19 oled1.cls();
okano 1:ce27bc7b44d4 20
okano 9:68408189efde 21 short buf[ MARMEX_OB_oled::WIDTH ];
okano 0:1062142e5718 22
okano 12:6ddd07d59c55 23 #if 1
okano 12:6ddd07d59c55 24 int count = 0;
okano 11:149993faf2be 25 char s[ 80 ];
okano 11:149993faf2be 26 for ( int i = 0; i < 10; i++ ) {
okano 11:149993faf2be 27 sprintf( s, "image%02d.bmp", i );
okano 11:149993faf2be 28 save_still_image( s );
okano 11:149993faf2be 29 }
okano 12:6ddd07d59c55 30 #endif
okano 10:3c8fc9569377 31
okano 0:1062142e5718 32 while ( 1 ) {
okano 7:380026dd09fd 33
okano 7:380026dd09fd 34 led = 0x1;
okano 4:5e1828a8e238 35 camera.open_transfer();
okano 0:1062142e5718 36
okano 10:3c8fc9569377 37 for ( int line = 0; line < MARMEX_OB_oled::HEIGHT; line++ ) {
okano 10:3c8fc9569377 38 camera.transfer_a_line( buf, line + Y_OFFSET, X_OFFSET, MARMEX_OB_oled::WIDTH );
okano 9:68408189efde 39 line_mirroring( buf );
okano 10:3c8fc9569377 40 oled1.blit565( 0, line, MARMEX_OB_oled::WIDTH, 1, buf );
okano 0:1062142e5718 41 }
okano 0:1062142e5718 42
okano 4:5e1828a8e238 43 camera.close_transfer();
okano 6:f5b4e088087b 44 led = 0x2;
okano 0:1062142e5718 45 }
okano 0:1062142e5718 46 }
okano 6:f5b4e088087b 47
okano 9:68408189efde 48
okano 9:68408189efde 49 void line_mirroring( short *buf )
okano 9:68408189efde 50 {
okano 9:68408189efde 51 short tmp;
okano 9:68408189efde 52
okano 9:68408189efde 53 for ( int i = 0; i < (MARMEX_OB_oled::WIDTH / 2); i++ ) {
okano 9:68408189efde 54 tmp = buf[ i ];
okano 9:68408189efde 55 buf[ i ] = buf[ (MARMEX_OB_oled::WIDTH - 1) - i ];
okano 9:68408189efde 56 buf[ (MARMEX_OB_oled::WIDTH - 1) - i ] = tmp;
okano 9:68408189efde 57 }
okano 10:3c8fc9569377 58 }
okano 10:3c8fc9569377 59
okano 10:3c8fc9569377 60
okano 10:3c8fc9569377 61 #include "bmp_handler.h"
okano 10:3c8fc9569377 62
okano 10:3c8fc9569377 63 void save_still_image( char *file_name )
okano 10:3c8fc9569377 64 {
okano 10:3c8fc9569377 65 short buf[ MARY_CAMERA::PIXEL_PER_LINE ];
okano 10:3c8fc9569377 66
okano 10:3c8fc9569377 67 if ( open_BMP( file_name ) )
okano 10:3c8fc9569377 68 return;
okano 10:3c8fc9569377 69
okano 10:3c8fc9569377 70 camera.open_transfer();
okano 10:3c8fc9569377 71
okano 10:3c8fc9569377 72 for ( int line = (MARY_CAMERA::LINE_PER_FRAME - 1); 0 <= line; line-- ) {
okano 10:3c8fc9569377 73 camera.transfer_a_line( buf, line, 0, MARY_CAMERA::PIXEL_PER_LINE );
okano 10:3c8fc9569377 74 write_BMP( buf, MARY_CAMERA::PIXEL_PER_LINE );
okano 10:3c8fc9569377 75 }
okano 10:3c8fc9569377 76
okano 10:3c8fc9569377 77 camera.close_transfer();
okano 11:149993faf2be 78
okano 10:3c8fc9569377 79 close_BMP();
okano 12:6ddd07d59c55 80 }
okano 12:6ddd07d59c55 81
okano 12:6ddd07d59c55 82