?? v5hdemo.c
字號(hào):
if(f_findnext( &find))//have not the same name
break;
g_file=f_open(find.filename,"r+");
Uart_Printf("\n dispaly %s",find.filename);
DrawBack();
VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_0,VIM_HAPI_A_LAYER);
VIM_HAPI_Display_Jpeg(VIM_HAPI_ROM_SAVE,g_file,0xffffff,0,0,240,320);
Delay(1000);
DrawBack();
VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_90,VIM_HAPI_A_LAYER);
VIM_HAPI_Display_Jpeg(VIM_HAPI_ROM_SAVE,g_file,0xffffff,0,0,320,240);
Delay(1000);
DrawBack();
VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_180,VIM_HAPI_A_LAYER);
VIM_HAPI_Display_Jpeg(VIM_HAPI_ROM_SAVE,g_file,0xffffff,0,0,240,320);
Delay(1000);
DrawBack();
VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_270,VIM_HAPI_A_LAYER);
VIM_HAPI_Display_Jpeg(VIM_HAPI_ROM_SAVE,g_file,0xffffff,0,0,320,240);
Delay(1000);
f_close(g_file);
Beep(0x1);
Delay(50);
Beep(0x0);
}
}
void V5HDEMO_CaptureMuliti(char frame)
{
UINT8 Number=1;
UINT8 *Frame;
UINT16 count=0xfff;//width,heigth,
Video_Length=0;
CAPTUREEND=0;
// Timer0_Stop();
//V5H_Capture_MULTI(frame,0x1111,VideoBuf,0x80000,V5HDEMO_CaptureMulitiCallback);
while(!CAPTUREEND&&(count--))
{
Delay(100);
//V5H_IntHandle();
}
// Timer0_Run();
//Video_Length=V5H_Capture_GetLength();
//Video_FrameCount=V5H_Capture_GetFrmCount();
while(1)
{
//
Delay(2000);
//Frame=V5H_Capture_GetMultishotFrame(VideoBuf,Video_Length,Number,&Jpeg_Length);
//V5H_Display_Jpeg(Frame,Jpeg_Length,0,0,128,96);
Number++;
if(Number==7)
break;
}
}
extern UINT8 g_Reverse;
void V5HDEMO_CaptureStillThumb(void)
{
UINT16 count=0xfff,Result;
Jpeg_Length=0;
CAPTUREEND=0;
//g_file=f_open("64x48.jpg","w+");//
Result=VIM_HAPI_CaptureThumbStill(VIM_HAPI_RAM_SAVE,JpegBuf,BmpBuf,0x160000,0);
Jpeg_Length=VIM_HAPI_GetCaptureLength();
if(Result)
Uart_Printf("\n568 ISR_Buf error=%d",Result);
else
Uart_Printf("\nlength =%d",Jpeg_Length);
//for(count=0;count<30;count++)
//memset(ThumbBuf+count*2*40,count*40,40*2);
g_Reverse=0;
VIM_HAPI_SetLCDColordep(VIM_HAPI_COLORDEP_16BIT);
//VIM_HAPI_YuvToRgb(ThumbBuf,BmpBuf,64,80,VIM_CON_UYVY_565);
VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B0_LAYER,0,0,64,80,BmpBuf);
//VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B0_LAYER,0,0,64,80,ThumbBuf);
//VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B1_LAYER,0,30,40,30,ThumbBuf);
VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,64,80);
Delay(10);
VIM_HAPI_SetLCDColordep(VIM_HAPI_COLORDEP_15BIT);
//VIM_HAPI_UpdateLCD(VIM_HAPI_B1_LAYER,0,30,40,30);
//f_write(ThumbBuf,1,64*48*2,g_file);
//f_close(g_file);//
}
//extern const unsigned char jpg4_128x160_yuv422[4760];
#define DISPLAY_AUTO 1
#define DISPLAY_NOT_AUTO 0
//extern const unsigned char jpeg1422[1422086];
void V5HDEMO_DisplayExternStill(int a,int b,int c,int d, int mode)
{
UINT16 DisplayStatus=0,Result;
#if 1
if (DISPLAY_AUTO == mode)
Result=VIM_HAPI_Display_Jpeg(VIM_HAPI_RAM_SAVE,NULL, 0,a, b, c, d);
else
Result=VIM_HAPI_Display_Jpeg(VIM_HAPI_RAM_SAVE, (UINT8 *)JpegBuf,0x160000, a, b, c, d);
//Result=VIM_HAPI_Display_Jpeg(VIM_HAPI_RAM_SAVE, (UINT8 *)jpegtest,0x160000, a, b, c, d);
#else
F_FILE *file;
const char name[200];
if (fileIndex>2)
fileIndex=1;
sprintf(name,"/%d.jpg",fileIndex);
file=f_open(name,"r+");
if(file==0)
Uart_Printf("\n open error");
else
Result=VIM_HAPI_Display_Jpeg(VIM_HAPI_ROM_SAVE, file,0xffffffff, a, b, c, d);
if(Result)
Uart_Printf("\n file %s display Error!", name);
else
Uart_Printf("\n file %s display OK!", name);
f_close(file);
fileIndex=fileIndex+1;
#endif
}
void User_DisplayVideoCallback(UINT8 Status, UINT32 Parameter)
{
switch (Status)
{
case VIM_HAPI_ONEFRAME_END:
//Uart_Printf("\n display frame: %d",framecounter);
break;
case VIM_HAPI_CAPTURE_END:
Beep(1);
Delay(50);
Beep(0);
CAPTUREEND=1;
break;
}
}
void StopVidso(void)
{
CAPTUREEND=1;
f_close(g_file);
}
UINT8 AVI_Indexbuf[16*7*60*30] ; // 30 minutes @7fps
void V5HDEMO_DisplayVideo(int a,int b,int c,int d)
{
UINT16 DisplayStatus=0,Result;
UINT32 len;
//V5H_Preview_Effect(V5H_SPECIAL_NORMAL);
#if 1
Result=VIM_HAPI_ReadyToDisplay(VIM_HAPI_RAM_SAVE, (UINT8 *)JpegBuf,0x160000, a, b, c, d);
while(1)
{
if (VIM_HAPI_DisplayOneFrame(NULL,0))
break;
Delay(500);
Uart_Printf("\n one frame finish");
}
#else
#if 1
F_FILE *file;
file=f_open("1.avi","r+");
if(file==0)
Uart_Printf("\n open error");
else
VIM_HAPI_ReadyToDisplay(VIM_HAPI_ROM_SAVE, file,0xffffffff, 0, 0, 240, 320);
CAPTUREEND=0;
VIM_HAPI_StartDisplayVideo(User_DisplayVideoCallback,10);
while(!CAPTUREEND);
f_close(file);
#else
g_file=f_open("/1.vmi","r+");
len=f_filelength("/1.vmi");
if(g_file==0)
{
Uart_Printf("\n open error");
return;
}
else
{
Result=AVlr_Load((UINT8 *)g_file,len,1,AVI_Indexbuf);
Uart_Printf("\n f_filelength=0x%x",len);
}
if(!Result)
{
CAPTUREEND=0;
AVlr_Play(0,0,StopVidso);
}
#endif
/*file=f_open("1.avi","r+");
if(file==0)
Uart_Printf("\n open error");
else
Result=VIM_HAPI_ReadyToDisplay(VIM_HAPI_ROM_SAVE, file,0x160000, a, b, c, d);
while(1)
{
if (VIM_HAPI_DisplayOneFrame(NULL,0))
break;
//Delay(500);
}
f_close(file);
file=f_open("2.avi","r+");
if(file==0)
Uart_Printf("\n open error");
else
Result=VIM_HAPI_ReadyToDisplay(VIM_HAPI_ROM_SAVE, file,0x160000, a, b, c, d);
while(1)
{
if (VIM_HAPI_DisplayOneFrame(NULL,0))
break;
// Delay(500);
}
f_close(file);*/
#endif
}
void V5HDEMO_Test(void)
{
/* V5H_Preview_MODE(V5H_PREVIEW_OFF);
//V5H_WorkMode_Set(V5H_MODE_BYPASS);
V5H_LCD_Panel(V5H_LCDPANEL_SUB);
//V5H_WorkMode_Set(V5H_MODE_CAMERAON);
V5H_Preview_Parameter(0,0,96,64);
V5H_Capture_Parameter(128,160,32);
V5H_Capture_CompressionRatio(1);
V5H_Preview_ExposureMode(1);//V5H_EXP_50HZ
V5H_Preview_ExposureTYPE(V5H_EXP_INDOOR);
V5H_Preview_Effect(V5H_SPECIAL_NORMAL);
V5H_LCD_WorkMode(V5H_LCDMODE_AFIRST, 0);
V5H_Preview_Mirror(V5H_SENSOR_ROTATION);
V5H_Preview_MODE(V5H_PREVIEW_ON);
V5H_Preview_Effect(0);
V5H_Preview_MODE(V5H_PREVIEW_OFF);
// V5H_WorkMode_Set(V5H_MODE_BYPASS);
V5H_LCD_Panel(V5H_LCDPANEL_MAIN);
// V5H_WorkMode_Set(V5H_MODE_CAMERAON);
V5H_Preview_Parameter(0,0,128,160);
V5H_Capture_Parameter(128,160,32);
V5H_Capture_CompressionRatio(1);
V5H_Preview_ExposureMode(1);//V5H_EXP_50HZ
V5H_Preview_ExposureTYPE(V5H_EXP_INDOOR);
V5H_Preview_Effect(V5H_SPECIAL_NORMAL);
//V5H_LCD_WorkMode(V5H_LCDMODE_OVERLAY, 0xf81f);
V5H_Preview_Mirror(V5H_SENSOR_NORMAL);
V5H_Preview_MODE(V5H_PREVIEW_ON);*/
}
UINT8 DisplayOk;
void DisplayOneFrame(void)
{
//DisplayOk=V5H_Display_Mjpeg(0 , 0,0,0, 0, 128, 160);
}
extern void V568Interrupt(void);
void V5HDEMO_CaptureVideo(void)
{
#if 1
Jpeg_Length=0;
VIM_HAPI_SetCaptureVideoInfo(VIM_HAPI_RAM_SAVE,10,8);
VIM_HAPI_StartCaptureVideo(JpegBuf, 100000, V5HDEMO_CaptureMulitiCallback);
Uart_Printf("\n568 video lenth=%d",Video_Length);
#else
g_file=f_open("111.jpg","w+");//
if(g_file==0)
Uart_Printf("\n open error");
else
{
Uart_Printf("\n g_file=0x%x",g_file);
VIM_HAPI_SetCaptureVideoInfo(VIM_HAPI_ROM_SAVE,10,8);
VIM_HAPI_StartCaptureVideo(g_file, 100000, V5HDEMO_CaptureMulitiCallback);
}
#endif
}
UINT8 *AudioCallBack(UINT32* length)
{
//*length=sizeof(audio1);
//return (UINT8 *)audio1;
}
void V5HDEMO_CaptureAVI(void)
{
#if 1
AviInfo info;
UINT32 TIME;
Video_Length=0;
StartCaculateTime();
info.wCaptureWidth=320;
info.wCaptureHeight=240;
info.dFileMaxSize=0x80000;//JpegBuf;
info.wFrameRate=10;
#if 0
Avi_LoadInfo(&info,RAMSAVE,V5HDEMO_CaptureAviCallback);
Avi_StartCapture(JpegBuf);
#else
CAPTUREEND=0;
g_file=f_open("1.avi","w+");//
if(g_file==0)
Uart_Printf("\n open error,file id =0x%x",g_file);
else
{
Uart_Printf("\n file id =0x%x",g_file);
Avi_LoadInfo(&info,ROMSAVE,V5HDEMO_CaptureAviCallback);
Avi_StartCapture(g_file);
}
#endif
//TIME=ReturnTime();
//Uart_Printf("\n568 video TIME=%d",TIME);
#endif
}
void V5HDEMO_TestPanel(char PANEL)
{
/*if(PANEL==1)
{
V5H_LCD_Panel(V5H_LCDPANEL_SUB);
V5H_Preview_Parameter(0,0,96,64);
V5H_Capture_Parameter(128,96,40);
V5H_Preview_MODE(V5H_PREVIEW_ON);//先算出twc
//Timer0_Run();
}
else
{
//Timer0_Stop();
V5H_LCD_Panel(V5H_LCDPANEL_MAIN);
V5H_Preview_Parameter(0,0,128,160);
V5H_Capture_Parameter(128,96,40);
V5H_Preview_MODE(V5H_PREVIEW_ON);//先算出twc
}*/
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -