Tedd OKANO / Mbed 2 deprecated MARY_CAMERA_Hello

Dependencies:   MARY_CAMERA NokiaLCD mbed

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