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
main.cpp@12:6ddd07d59c55, 2014-02-18 (annotated)
- 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?
User | Revision | Line number | New 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 |