⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testhiapi.c

📁 中芯微VC0528测试程序
💻 C
📖 第 1 页 / 共 3 页
字号:
#define HEADTEMPTEST

void TEST1TSRAM(void)
{
UINT8 buf[5];
UINT32 i,j=0,k;
	VIM_HAPI_SetWorkMode(VIM_HAPI_MODE_CAMERAON);//through mode power on lcd
	
	VIM_HAPI_SetWorkMode(VIM_HAPI_MODE_BYPASS);//through mode power on lcd
	VIM_HAPI_SetWorkMode(VIM_HAPI_MODE_CAMERAON);//through mode power on lcd
	
#ifdef HEADTEMPTEST
	while((j++)<2)
#else
	while((j++)<10)
#endif
	{
		Uart_Printf("\n /////////////////begin to test %d  times /////////////////!! \n",j);
		VIM_HIF_WriteSramOnWord(0, 0, 0x20000);
		for(k=0;k<16;k++)
		{
			VIM_HIF_ReadSram(k*0x2000,buf123,0x2000);
			for(i=0;i<0x2000;i++)
			{
				if(buf123[i]!=0)
				{
					Uart_Printf("\n TEST1TSRAM  step 1 error i=0x%x \n",i);
					return;
				}
				VIM_HIF_WriteSramOnWord(i+k*0x2000,0xffffffff,4);
			}
		}
		Uart_Printf("\n TEST1TSRAM  step 1 ok !! \n");
		Delay(10);
		for(k=0;k<16;k++)
		{
			VIM_HIF_ReadSram(k*0x2000,buf123,0x2000);
			for(i=0;i<0x2000;i++)
			{
				if(buf123[i]!=0xff)
				{
					Uart_Printf("\n TEST1TSRAM  step 2 error i=0x%x \n",i);
					return;
				}
			}
		}
		Uart_Printf("\n TEST1TSRAM  step 2 ok !! \n");
		
		VIM_HIF_WriteSramOnWord(0, 0xaaaaaaaa, 0x20000);
		//Delay(100*j);
		Delay(1000);//1s
		
		for(k=0;k<16;k++)
		{
			VIM_HIF_ReadSram(k*0x2000,buf123,0x2000);
			for(i=0;i<0x2000;i++)
			{
				if(buf123[i]!=0xaa)
				{
					Uart_Printf("\n TEST1TSRAM  step 3 error i=0x%x \n",i);
					return;
				}

			}
		}
		Uart_Printf("\n TEST1TSRAM  step 3 ok !! \n");
		
		VIM_HIF_WriteSramOnWord(0, 0x55555555, 0x20000);
		//Delay(100*j);
		Delay(5000);// //5s 
		for(k=0;k<16;k++)
		{
			VIM_HIF_ReadSram(k*0x2000,buf123,0x2000);
			for(i=0;i<0x2000;i++)
			{
				if(buf123[i]!=0x55)
				{
					Uart_Printf("\n TEST1TSRAM  step 4 error i=0x%x \n",i);
					return;
				}
			}
		}
		Uart_Printf("\n TEST1TSRAM  step 4 ok !! \n");

		for(i=0;i<(0x20000/4);i++)
			*(((UINT32 *)JpegBuf)+i)=i;
		
		VIM_HIF_WriteSram(0, JpegBuf, 0x20000);
		VIM_HIF_ReadSram(0,JpegBuf+0x20000,0x20000);
		for(i=0;i<0x20000;i++)
		{
			if(JpegBuf[i]!=JpegBuf[i+0x20000])
			{
				Uart_Printf("\n test ram error j=%d ",j);
				return;
			}
		}
		Uart_Printf("\n TEST1TSRAM  step 5 ok !! \n");
	}
	//VIM_HAPI_SetWorkMode(VIM_HAPI_MODE_BYPASS);//through mode power on lcd
}


void vc0528autotest(void)
{
UINT8 i,k=0;
UINT32 j;
TESTBING:
	//-=-=-=-=-=-=-=-=-=-=-=-start test layer b-=-=-=-=-=-=-=-=-=-=-=-

	VIM_HAPI_SetWorkMode(VIM_HAPI_MODE_CAMERAON);//through mode power on lcd

#if 1
	fn_chdir("/pic");
	VIM_HAPI_SetLCDSize(VIM_HAPI_B0_LAYER,0,0,128,80);
	VIM_HAPI_SetLCDSize(VIM_HAPI_B1_LAYER,0,80,128,80);
	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_BLONLY,0);
	VIM_HAPI_SetLCDColordep(VIM_HAPI_COLORDEP_16BIT);
	VIM_HAPI_DrawLCDPureColor(VIM_HAPI_B0_LAYER,0,0,128,80,0xf800);
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,128,80);
	Delay(1000);
	VIM_HAPI_DrawLCDPureColor(VIM_HAPI_B1_LAYER,0,80,128,80,0x1f);
	VIM_HAPI_UpdateLCD(VIM_HAPI_B1_LAYER,0,80,128,80);
	Delay(1000);
	VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B0_LAYER,0,0,64,48,(UINT8 *)rgb64x48);
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,64,48);
	Delay(1000);
	VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B1_LAYER,0,80,64,48,(UINT8 *)rgb64x48);
	VIM_HAPI_UpdateLCD(VIM_HAPI_B1_LAYER,0,80,64,48);
	Delay(1000);
	VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_90,VIM_HAPI_ALLB_LAYER);
	VIM_HAPI_SetLCDSize(VIM_HAPI_B0_LAYER,10,10,150,54);
	VIM_HAPI_SetLCDSize(VIM_HAPI_B1_LAYER,10,64,150,64);
	VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B0_LAYER,96,20,64,48,(UINT8 *)rgb64x48);
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,96,20,64,48);
	Delay(1000);
	VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B1_LAYER,30,80,64,48,(UINT8 *)rgb64x48);
	VIM_HAPI_UpdateLCD(VIM_HAPI_B1_LAYER,30,80,64,48);
	Delay(1000);

	//-=-=-=-=-=-=-=-=-=-=-=-end test layer b-=-=-=-=-=-=-=-=-=-=-=-
	VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_0,VIM_HAPI_ALLB_LAYER);
	VIM_HAPI_SetLCDSize(VIM_HAPI_B0_LAYER,0,0,128,160);
	VIM_HAPI_SetLCDSize(VIM_HAPI_B1_LAYER,0,0,0,0);
	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_OVERLAY,0);
	VIM_HAPI_SetLCDColordep(VIM_HAPI_COLORDEP_15BIT);

	g_Reverse=1;
	//VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B0_LAYER,0,0,128,160,(HUGE  UINT8 *)BMP9);//(UINT8 *)RGB_buf);
	VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B0_LAYER,0,0,128,160,(HUGE  UINT8 *)BMP2);//(UINT8 *)RGB_buf);
	//VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_OVERLAY,0);
	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_BLEND,128);
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,128,160);
	Delay(1000);
	g_Reverse=0;
	//VIM_HAPI_SetLCDColordep(VIM_HAPI_COLORDEP_16BIT);

	//-=-=-=-=-=-=-=-=-=-=-=-start test preview-=-=-=-=-=-=-=-=-=-=-=-
	///test  capture 128x160  overlay and blending
	VIM_HAPI_SetCaptureParameter(128,160);
	VIM_HAPI_SetPreviewParameter(0,0,128,160);
	VIM_HAPI_SetPreviewMode(VIM_HAPI_PREVIEW_FRAMEON);
	Delay(1000);

	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_OVERLAY,0);
	VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_90,VIM_HAPI_A_LAYER);
	VIM_HAPI_SetPreviewParameter(320-160,0,160,128);
	VIM_HAPI_SetPreviewMode(VIM_HAPI_PREVIEW_FRAMEON);
	Delay(1000);


	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_BLEND,128);
	VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_180,VIM_HAPI_A_LAYER);
	VIM_HAPI_SetPreviewParameter(240-128,320-160,128,160);
	VIM_HAPI_SetPreviewMode(VIM_HAPI_PREVIEW_FRAMEON);
	Delay(1000);

	V5HDEMO_CaptureStill();
	Delay(100);

	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_OVERLAY,0);
	VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_270,VIM_HAPI_A_LAYER);
	VIM_HAPI_SetPreviewParameter(0,240-128,160,128);
	VIM_HAPI_SetPreviewMode(VIM_HAPI_PREVIEW_FRAMEON);
	Delay(1000);

	V5HDEMO_CaptureStill();
	Delay(100);

#if 1
	///test  capture 640x480  preview 320x240
	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_AFIRST,0);
	VIM_HAPI_SetCaptureParameter(640,480);
	VIM_HAPI_SetPreviewParameter(0,0,240,320);
	VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_0,VIM_HAPI_A_LAYER);
	VIM_HAPI_SetPreviewMode(VIM_HAPI_PREVIEW_ON);
	Delay(1000);

	//VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_OVERLAY,0);
	VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_90,VIM_HAPI_A_LAYER);
	VIM_HAPI_SetPreviewParameter(0,0,320,240);
	VIM_HAPI_SetPreviewMode(VIM_HAPI_PREVIEW_ON);
	Delay(1000);

	//VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_BLEND,128);
	VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_180,VIM_HAPI_A_LAYER);
	VIM_HAPI_SetPreviewParameter(0,0,240,320);
	VIM_HAPI_SetPreviewMode(VIM_HAPI_PREVIEW_ON);
	Delay(1000);



	//VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_OVERLAY,0);
	VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_270,VIM_HAPI_A_LAYER);
	VIM_HAPI_SetPreviewParameter(0,0,320,240);
	VIM_HAPI_SetPreviewMode(VIM_HAPI_PREVIEW_ON);
	Delay(1000);

	V5HDEMO_CaptureStill();
	Delay(100);

	///test  capture 1280x1024  preview 320x240
	VIM_HAPI_SetLCDSize(VIM_HAPI_B0_LAYER,0,0,0,0);
	
	for(i=0;i<6;i++)
	{
		FastPreview=0;
		VIM_HAPI_SetCaptureParameter(1280,960);
		VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_0,VIM_HAPI_A_LAYER);
		VIM_HAPI_SetPreviewParameter(0,0,240,320);
		VIM_HAPI_SetPreviewMode(VIM_HAPI_PREVIEW_ON);
		VIM_HAPI_SetEffect((VIM_HAPI_SPECIAL_EFFECT)i);
		Delay(2000);
		V5HDEMO_CaptureStill();
		Delay(100);
	}

	///test  capture 1280x1024  preview 320x240
	for(i=0;i<6;i++)
	{
		FastPreview=1;
		VIM_HAPI_SetCaptureParameter(1280,960);
		VIM_HAPI_SetPreviewParameter(0,0,240,320);
		VIM_HAPI_SetPreviewMode(VIM_HAPI_PREVIEW_ON);
		VIM_HAPI_SetEffect((VIM_HAPI_SPECIAL_EFFECT)i);
		Delay(2000);
		V5HDEMO_CaptureStill();
		Delay(100);
	}

	VIM_HAPI_SetEffect(VIM_HAPI_SPECIAL_NORMAL);
	//-=-=-=-=-=-=-=-=-=-=-=-start test capture video-=-=-=-=-=-=-=-=-=-=-=-
	VIM_HAPI_SetCaptureParameter(320,240);
	VIM_HAPI_SetPreviewParameter(0,0,240,320);
	VIM_HAPI_SetPreviewMode(VIM_HAPI_PREVIEW_ON);
	Delay(1000);

	V5HDEMO_CaptureAVI();
	Delay(100);
	while(!CAPTUREEND);
	V5HDEMO_DisplayVideo(0,0,240,320);

	
#endif
#endif

#if 0
	//-=-=-=-=-=-=-=-=-=-=-=-start test decode -=-=-=-=-=-=-=-=-=-=-=-
	VIM_HAPI_SetLCDMirror(VIM_HAPI_ROTATE_0,VIM_HAPI_ALL_LAYER);
	VIM_HAPI_SetPreviewMode(VIM_HAPI_PREVIEW_ON);
	VIM_HAPI_SetLCDSize(VIM_HAPI_B1_LAYER,0,0,0,0);	
	VIM_HAPI_SetLCDSize(VIM_HAPI_B0_LAYER,0,0,128,160);
	VIM_HAPI_SetLCDColordep(VIM_HAPI_COLORDEP_16BIT);
	//-=-=-=-=-=-=-=-=-=-=-=- YUV IPP resize decode test-=-=-=-=-=-=-=-=-=-=-=-
	VIM_HAPI_Decode_Jpeg(VIM_HAPI_RAM_SAVE,VIM_DECODE_RESIZE_TO_YUV,data320x240, YUVBuf,7432,0x15000,128,96);
	Delay(100);
	VIM_HAPI_YuvToRgb(YUVBuf,BmpBuf,128,160,VIM_CON_UYVY_565);
	VIM_HAPI_SetWorkMode(VIM_HAPI_MODE_PHOTOPROCESS);
	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_BLONLY,0);
	VIM_HAPI_DrawLCDPureColor(VIM_HAPI_B0_LAYER,0,0,128,160,0);
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,128,160);
	Delay(1000);
	VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B0_LAYER,0,0,128,160,BmpBuf);	
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,128,160);
	Delay(1000);
	//-=-=-=-=-=-=-=-=-=-=-=- YUV frame decode test-=-=-=-=-=-=-=-=-=-=-=-
	VIM_HAPI_DrawLCDPureColor(VIM_HAPI_B0_LAYER,0,0,128,160,0);
	VIM_HAPI_DrawLCDPureColor(VIM_HAPI_B0_LAYER,0,0,40,40,0xf800);
	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_OVERLAY,0);
	
	VIM_HAPI_Decode_Jpeg(VIM_HAPI_RAM_SAVE,VIM_DECODE_WITHFRAME_TO_YUV,data320x240, YUVBuf,7432, 0x15000,128,96);
	Delay(100);
	VIM_HAPI_YuvToRgb(YUVBuf,BmpBuf,128,160,VIM_CON_UYVY_565);

	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_BLONLY,0);
	VIM_HAPI_DrawLCDPureColor(VIM_HAPI_B0_LAYER,0,0,128,160,0);
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,128,160);
	Delay(100);
	VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B0_LAYER,0,0,128,160,BmpBuf);	
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,128,160);
	Delay(1000);
	// -=-=-=-=-=-=-=-=-=-=-=-RGB resize decode test-=-=-=-=-=-=-=-=-=-=-=-
	VIM_HAPI_Decode_Jpeg(VIM_HAPI_RAM_SAVE,VIM_DECODE_RESIZE_TO_RGB,JPEG_128x160_422,BmpBuf,3072, 128*160*2,128,160);
	Delay(100);
	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_BLONLY,0);
	VIM_HAPI_DrawLCDPureColor(VIM_HAPI_B0_LAYER,0,0,128,160,0);
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,128,160);
	Delay(100);
	VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B0_LAYER,0,0,128,160,BmpBuf);	
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,128,160);
	Delay(1000);
	// -=-=-=-=-=-=-=-=-=-=-=-RGB frame decode test-=-=-=-=-=-=-=-=-=-=-=-
	VIM_HAPI_DrawLCDPureColor(VIM_HAPI_B0_LAYER,0,0,128,160,0);
	VIM_HAPI_DrawLCDPureColor(VIM_HAPI_B0_LAYER,0,0,40,40,0xf800);
	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_OVERLAY,0);
	
	VIM_HAPI_Decode_Jpeg(VIM_HAPI_RAM_SAVE,VIM_DECODE_WITHFRAME_TO_RGB,data128x96,BmpBuf,3661, 128*96*2,128,96);
	Delay(100);
	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_BLONLY,0);
	VIM_HAPI_DrawLCDPureColor(VIM_HAPI_B0_LAYER,0,0,128,160,0);
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,128,160);
	Delay(100);
	VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B0_LAYER,0,0,128,96,BmpBuf);	
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,128,96);
	Delay(1000);
	// -=-=-=-=-=-=-=-=-=-=-=-RGB frame decode test-=-=-=-=-=-=-=-=-=-=-=-
	VIM_HAPI_DrawLCDPureColor(VIM_HAPI_B0_LAYER,0,0,128,160,0);
	VIM_HAPI_DrawLCDPureColor(VIM_HAPI_B0_LAYER,0,0,40,40,0xf800);
	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_OVERLAY,0);
	VIM_HAPI_Decode_Jpeg(VIM_HAPI_RAM_SAVE,VIM_DECODE_WITHFRAME_TO_RGB,data128x128,BmpBuf,4988, 128*128*2,128,128);
	Delay(100);
	VIM_HAPI_SetLCDWorkMode(VIM_HAPI_LCDMODE_BLONLY,0);
	VIM_HAPI_DrawLCDPureColor(VIM_HAPI_B0_LAYER,0,0,128,160,0);
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,128,160);
	Delay(100);
	VIM_HAPI_DrawLCDRctngl(VIM_HAPI_B0_LAYER,0,0,128,128,BmpBuf);	
	VIM_HAPI_UpdateLCD(VIM_HAPI_B0_LAYER,0,0,128,128);
	Delay(1000);
	
	
VIM_HAPI_SetWorkMode(VIM_HAPI_MODE_BYPASS);
Delay(1000);
VIM_HAPI_SetWorkMode(VIM_HAPI_MODE_CAMERAON);
Delay(1000);
	//-=-=-=-=-=-=-=-=-=-=-=-decode test end -=-=-=-=-=-=-=-=-=-=-=-
#endif
#ifndef HEADTEMPTEST
	//if(k<10)
	if(!k)
	{
		k++;
		Uart_Printf("\n /////////////////begin to test function %d  times /////////////////!! \n",k);
		goto TESTBING;
	}
#endif

//-=-=-=-=-=-=-=-=-=-=-=-start test display jpg-=-=-=-=-=-=-=-=-=-=-=-
//V5HDEMO_DisplayRomAuto("/");
V5HDEMO_DisplayRomAuto("/1");
/////////////////////mem test/////////////////////
	VIM_HIF_ReadSram(0,JpegBuf,0x20000);
	
	for(i=1;i<=10;i++)
	{
		Uart_Printf("\n Start Test Sram %d times",i);
		Delay(1000*i);
		VIM_HIF_ReadSram(0,JpegBuf+0x20000,0x20000);
		for(j=0;j<0x20000;j++)
		{
			if(JpegBuf[j]!=JpegBuf[j+0x20000])
			{
				Uart_Printf("\n test ram error j=%d ",j);
				return;
			}
		}
	}
	Uart_Printf("\n test ram ok ");
/////////////////////////////////////////////////

	MassStorage_Init();
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -