MARMEX_VB test application program. This application works on "mbed NXP LPC1768" only. This application expects to have the MARMEX_VB module on a "MAPLE mini type-B (MARM03-BASE)" baseboard (slot2) with MARMEX_OB module (on slot1)
Dependencies: MARMEX_VB NokiaLCD mbed
This is the library test program.
The program can test features of the library (refer to MARMEX-VB's API document) and can save captured data into BMP file.
Warning!
This test program can run on "mbed NXP LPC1768" only.
Picture : sample of test program operation
The modules of MARMEX-VB and MARMEX-OB are set on the "MAPLE mini type-B (MARM03-BASE)" baseboard.
The image data from camera is mirrored and alpha graphics added by software.
Diff: main.cpp
- Revision:
- 8:86aae677a68b
- Parent:
- 7:125538c50c22
diff -r 125538c50c22 -r 86aae677a68b main.cpp --- a/main.cpp Thu Jun 19 12:21:50 2014 +0000 +++ b/main.cpp Fri Jun 20 09:05:45 2014 +0000 @@ -1,7 +1,7 @@ /** Test program for MARMEX_VB Camera control library * - * @version 0.3 - * @date 19-Jun-2014 + * @version 0.4 + * @date 20-Jun-2014 * * Released under the Apache License, Version 2.0 : http://mbed.org/handbook/Apache-Licence * @@ -171,11 +171,16 @@ // camera.colorbar( ((count++ >> 2) & 0x1) ? MARMEX_VB::ON : MARMEX_VB::OFF ); +#if 0 + #define SCREEN_TOP 9 + t = looptimer.read(); looptimer.reset(); oled1.locate( 0, 0 ); oled1.printf( " %.2f %s/s", 1.0 / t, interlace ? "field" : "frame" ); - +#else + #define SCREEN_TOP 0 +#endif led = 0x2; frame_count++; @@ -223,48 +228,6 @@ } } - -#define OPTIMIZATION_ENABLED -#define SCREEN_TOP 9 - -#ifdef OPTIMIZATION_ENABLED -void copy_image_from_camera_to_oled( void ) -{ - short buf[ MARMEX_OB_oled::WIDTH ]; // array size should be multiple of 8 for "mbed LPC1768" optimization - static int count = 0; - - camera.open_transfer(); - - for ( int line = SCREEN_TOP; line < MARMEX_OB_oled::HEIGHT; line++ ) { - camera.read_a_line_SPI_FIFO_READ( buf, line + (camera.get_vertical_size() - (int)MARMEX_OB_oled::HEIGHT) / 2, (camera.get_horizontal_size() - (int)MARMEX_OB_oled::WIDTH ) / 2, MARMEX_OB_oled::WIDTH ); - line_mirroring( buf ); - alpha( line, buf, ((count >> 4) & 1) ? 60 : 8, ((count >> 4) & 1) ^ ((count >> 3) & 1) ? ((int)MARMEX_OB_oled::HEIGHT - (ap.v + 4)) : 4 + SCREEN_TOP, &ap ); - oled1.blit565_SPI_FIFO_WRITE( 0, line, MARMEX_OB_oled::WIDTH, 1, buf ); - } - - count++; - camera.close_transfer(); -} - - -void copy_image_from_camera_to_oled_interlaced( void ) -{ - short buf[ MARMEX_OB_oled::WIDTH ]; - static int count = 0; - - camera.open_transfer(); - - for ( int line = ((count++) & 1) + SCREEN_TOP; line < MARMEX_OB_oled::HEIGHT; line += 2 ) { - camera.read_a_line_SPI_FIFO_READ( buf, line + (camera.get_vertical_size() - (int)MARMEX_OB_oled::HEIGHT) / 2, (camera.get_horizontal_size() - (int)MARMEX_OB_oled::WIDTH ) / 2, MARMEX_OB_oled::WIDTH ); - line_mirroring( buf ); - alpha( line, buf, ((count >> 4) & 1) ? 60 : 8, ((count >> 4) & 1) ^ ((count >> 3) & 1) ? ((int)MARMEX_OB_oled::HEIGHT - (ap.v + 4)) : 4 + SCREEN_TOP, &ap ); - oled1.blit565_SPI_FIFO_WRITE( 0, line, MARMEX_OB_oled::WIDTH, 1, buf ); - } - - camera.close_transfer(); -} - -#else void copy_image_from_camera_to_oled( void ) { short buf[ MARMEX_OB_oled::WIDTH ]; // array size should be multiple of 8 for "mbed LPC1768" optimization @@ -300,7 +263,7 @@ camera.close_transfer(); } -#endif + void copy_image_from_camera_to_oled_small( void ) {