Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MARY_CAMERA NokiaLCD mbed
Diff: main.cpp
- Revision:
- 21:a2ac746dd516
- Parent:
- 16:fa1bd83e34b0
- Parent:
- 12:6ddd07d59c55
- Child:
- 22:d5e24ab4afb7
--- a/main.cpp Mon Mar 10 01:57:42 2014 +0000 +++ b/main.cpp Mon Mar 10 02:11:25 2014 +0000 @@ -22,6 +22,7 @@ #define Y_OFFSET ((MARY_CAMERA::LINE_PER_FRAME - MARMEX_OB_oled::HEIGHT) / 2) void line_mirroring( short *buf ); +void save_still_image( char *file_name ); void oled_test_screen( void ); int main() @@ -30,9 +31,13 @@ oled1.cls(); oled_test_screen(); - + short buf[ MARMEX_OB_oled::WIDTH ]; +#if defined( TARGET_MBED_LPC1768 ) || defined( TARGET_LPC11U24_401 ) + save_still_image( "image.bmp" ); +#endif + while ( 1 ) { led = 0x1; @@ -42,7 +47,6 @@ camera.transfer_a_line( buf, line + Y_OFFSET, X_OFFSET, MARMEX_OB_oled::WIDTH ); line_mirroring( buf ); oled1.blit565( 0, line, MARMEX_OB_oled::WIDTH, 1, buf ); - //wait_us( 700 ); } camera.close_transfer(); @@ -55,17 +59,10 @@ { short tmp; -#if 1 for ( int i = 0; i < (MARMEX_OB_oled::WIDTH / 2); i++ ) { tmp = buf[ i ]; buf[ i ] = buf[ (MARMEX_OB_oled::WIDTH - 1) - i ]; buf[ (MARMEX_OB_oled::WIDTH - 1) - i ] = tmp; -#else - for ( int i = 0; i < MARMEX_OB_oled::WIDTH; i++ ) { - buf[ i ] = 0x0; - -#endif - } } @@ -87,8 +84,27 @@ oled1.locate( 0, 4 ); oled1.printf( "%s", (MARY_CAMERA::NO_ERROR == camera.ready()) ? "Camera is ready" : "No Camera found" ); - for (int i = 0; i < MARMEX_OB_oled::WIDTH; i++ ) { + for (int i = 0; i < MARMEX_OB_oled::WIDTH; i++ ) oled1.pixel( i, 80 + sin( (float)i / 5.0 ) * 10, 0x000000 ); +} + + +#include "bmp_handler.h" + +void save_still_image( char *file_name ) +{ + short buf[ MARY_CAMERA::PIXEL_PER_LINE ]; + + if ( open_BMP( file_name ) ) + return; + + camera.open_transfer(); + + for ( int line = (MARY_CAMERA::LINE_PER_FRAME - 1); 0 <= line; line-- ) { + camera.transfer_a_line( buf, line, 0, MARY_CAMERA::PIXEL_PER_LINE ); + write_BMP( buf, MARY_CAMERA::PIXEL_PER_LINE ); } + camera.close_transfer(); -} + close_BMP(); +} \ No newline at end of file