MY TRAIAL (1)
Dependencies: FATFileSystem GR-PEACH_video GraphicsFramework LCD_shield_config R_BSP mbed-rtos mbed
Fork of GR-PEACH_NTSC_in_2ch_MOD_try by
I put an OVERVIEW in the blow URL. https://developer.mbed.org/users/digiponta/notebook/my-trial-ar--vr-2-eyes-display-goes-by-a-gr-peach/
Revision 8:0f9a45e34220, committed 2016-09-15
- Comitter:
- digiponta
- Date:
- Thu Sep 15 11:06:34 2016 +0000
- Parent:
- 7:2fb4359e5ea6
- Commit message:
- ??????????
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 2fb4359e5ea6 -r 0f9a45e34220 main.cpp --- a/main.cpp Wed Sep 14 12:36:30 2016 +0000 +++ b/main.cpp Thu Sep 15 11:06:34 2016 +0000 @@ -351,7 +351,6 @@ Thread::wait(200); lcd_cntrst.write(1.0); - dir = opendir( "/sd" ); for ( imgCnt=0; ; imgCnt++) { dp = readdir( dir ); @@ -365,15 +364,13 @@ Thread::wait(100); if ((mode == 0) && (prev_sw0 != 0) && (sw0 == 0)) - { - + { #if 1 for ( vfield_count_0=0; vfield_count_0 == 0; ) { } for ( vfield_count_1=0; vfield_count_1 == 0; ) { } -#if 1 Thread::wait(500); @@ -403,7 +400,6 @@ pc.printf("Error:JCU encode error\n"); led1 = 0; } -#endif Thread::wait(500); // NVIC_SystemReset(); @@ -442,48 +438,36 @@ while( !sd.connect() ) { Thread::wait(500); } - - sprintf( fname, "/sd/img_%04d.jpg", viewCnt++ ); - if ( viewCnt >= imgCnt ) viewCnt = 0; - pc.printf("File read start %s v=%d, i=%d\n", fname, viewCnt, imgCnt ); - - // dcache_invalid(user_frame_buffer1, sizeof(user_frame_buffer1)); - // dcache_invalid(user_frame_buffer0, sizeof(user_frame_buffer0)); - - rd_fp = fopen( fname, "r" ); - if (rd_fp == NULL ) { - pc.printf("can't open the file\n" ); - mode = 1; - continue; + for ( int i=0; i<imgCnt; i++ ) { + sprintf( fname, "/sd/img_%04d.jpg", viewCnt++ ); + if ( viewCnt >= imgCnt ) viewCnt = 0; + pc.printf("File read start %s v=%d, i=%d\n", fname, viewCnt, imgCnt ); + + rd_fp = fopen( fname, "r" ); + if (rd_fp == NULL ) { + pc.printf("can't open the file\n" ); + mode = 1; + continue; + } else { + goto GO_PLAY; + } } + continue; + +GO_PLAY: fseek( rd_fp, 0, SEEK_SET ); -#if 0 - fsize = ftell( rd_fp ); - if (fsize == 0) { - pc.printf("fsize = 0 error\n" ); - mode = 1; - continue; - } - pc.printf("fsize = %d\n", fsize ); - fseek( rd_fp, 0, SEEK_SET ); - for( long i=0; i < fsize ;i++) { - char cc = getc( rd_fp ); - // if ( cc == EOF ) break; - user_frame_buffer1[i] = (unsigned char)cc; - } -#else size_t len = fread(user_frame_buffer1, sizeof(char), sizeof(user_frame_buffer1), rd_fp); pc.printf( "len = %d\n", len ); -#endif fclose(rd_fp); + dcache_clean(user_frame_buffer1, len); //キャッシュクリーンを追加 pc.printf("File read done\n"); - - //YCbCr setting + //YCbCr setting aBitmapData.width = LCD_PIXEL_WIDTH; aBitmapData.height = LCD_PIXEL_HEIGHT; aBitmapData.format = JPEG_Converter::WR_RD_YCbCr422; //YCbCr[0] & ARGB8888[1] is 4byte, not RGB565[2] is 2byte aBitmapData.buffer_address = (void *)user_frame_buffer0; + dcache_invalid(user_frame_buffer0, sizeof(user_frame_buffer0)); //キャッシュインバリデートを追加 pc.printf("File decode start\n"); // JPEG_Converter if (decoder.decode((void *)user_frame_buffer1, &aBitmapData) == JPEG_Converter::JPEG_CONV_OK) { @@ -493,10 +477,9 @@ pc.printf("Error:JCU decode error\n"); led1 = 0; } - mode = 1; - } - + } + if ( (mode == 1) && (prev_sw3 != 0) && (sw3 == 0)) { /* Video write process start */ @@ -511,12 +494,9 @@ printf("Line %d, error %d\n", __LINE__, error); mbed_die(); } - mode = 0; // } - - prev_sw0 = sw0; // prev_sw1 = sw1; prev_sw2 = sw2;