亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vportdis.c

?? TI DM642 驅動CCD的視頻解碼與顯示編碼源代碼(D1分辨率),非DSP/BIOS方法,讓開發人員能更了解底層CCD視頻解碼與顯示編碼驅動基本原理.具體芯片與環境配置請參考驅動文件說明,本程序本
?? C
?? 第 1 頁 / 共 2 頁
字號:
	VP_RSETH(vpDisplayHandle , VDFLDT1,VP_VDFLDT1_RMK(VD_FIELD1_YSTART, VD_FIELD1_XSTART));
	/* set field2 timing */
	VP_RSETH(vpDisplayHandle , VDFLDT2,VP_VDFLDT2_RMK(VD_FIELD2_YSTART, VD_FIELD2_XSTART));
	/* set display field bit register(VD_FBIT) */
	VP_RSETH(vpDisplayHandle , VDFBIT,VP_VDFBIT_RMK(VD_FBIT_SET, VD_FBIT_CLR));
	/* set horizontal sync control (VCTL1S) */
	VP_RSETH(vpDisplayHandle , VDHSYNC,VP_VDHSYNC_RMK(VD_HSYNC_STOP, VD_HSYNC_START));
	/* set vertical sync start for field1 (VCTL2S) */
	VP_RSETH(vpDisplayHandle , VDVSYNS1,VP_VDVSYNS1_RMK(VD_VSYNC_YSTART1,VD_VSYNC_XSTART1));
	/* set vertical sync end for field1 (VCTL2S) */
	VP_RSETH(vpDisplayHandle , VDVSYNE1,VP_VDVSYNE1_RMK(VD_VSYNC_YSTOP1, VD_VSYNC_XSTOP1));
	/* set vertical sync start for field2 (VCTL2S) */
	VP_RSETH(vpDisplayHandle , VDVSYNS2,VP_VDVSYNS2_RMK(VD_VSYNC_YSTART2,VD_VSYNC_XSTART2));
	/* set vertical sync end for field2 (VCTL2S) */
	VP_RSETH(vpDisplayHandle , VDVSYNE2,VP_VDVSYNE2_RMK(VD_VSYNC_YSTOP2, VD_VSYNC_XSTOP2));
	/* Let clipping values to be their defaults (VD_CLIP) */
	/* No need to set DEF_VAL and VD_RELOAD in this example */
	/* set event register */
	VP_RSETH(vpDisplayHandle , VDDISPEVT,VP_VDDISPEVT_RMK(VD_DISPEVT2, VD_DISPEVT1));
	/* Vertical interrupts are not used in this example (VD_VINT) */
	/* set threshold value for DMA events */
	VP_RSETH(vpDisplayHandle, VDTHRLD,VP_VDTHRLD_RMK(VD_VDTHRLD2,VP_VDTHRLD_INCPIX_DEFAULT, VD_VDTHRLD1));
	/* ............................... */
	/* Set display control reg(VD_CTL) */
	/* ............................... */
	/* set display mode(DMODE) to 8.bit BT.656 */
	VP_FSETH(vpDisplayHandle , VDCTL, DMODE, VP_VDCTL_DMODE_BT656B);
	/* set non.continuous frame display */
	VP_FSETH(vpDisplayHandle , VDCTL, CON, VP_VDCTL_CON_DISABLE);
	VP_FSETH(vpDisplayHandle , VDCTL, FRAME, VP_VDCTL_FRAME_FRMDIS);
	VP_FSETH(vpDisplayHandle , VDCTL, DF2, VP_VDCTL_DF2_NONE);
	VP_FSETH(vpDisplayHandle , VDCTL, DF1, VP_VDCTL_DF1_NONE);
	/* let control outputs(VCTL1S, VCTL2S, VCTL3S, HXS, VXS, FXS) */
	/* be their defaults i.e. VCTLxS are output control signals */
	/* no scaling and no resampling in this example */
	/* no need to bother about 10.bit unpacking mode(DPK bit) */
	/* in this 8.bit example */
	/* Set up Y, Cb and Cr EDMA channels */
//	setupVPDispEDMA(portNumber);
	IRQ_enable(vpDisplayHandle ->eventId);
	
	return vpDisplayHandle;
}
/*................................................................ */
/* Function : bt656_display_start */
/* Input(s) : VP_Handle*/
/* Description : Configures given video port for 8.bit BT.656 non. */
/* continuous frame display. */
/*................................................................ */
void bt656_display_start(VP_Handle videohandle)
{
	/* clear VPHLT in VP_CTL to make video port function */
	VP_FSETH(vpDisplayHandle , VPCTL, VPHLT, VP_VPCTL_VPHLT_CLEAR);
	/* .............. */
	/* enable display */
	/* .............. */
	/* set VDEN to enable display for loop.back */
	VP_FSETH(vpDisplayHandle, VDCTL, VDEN, VP_VDCTL_VDEN_ENABLE);
	/* clear BLKDIS in VD_CTL to enable display DMA events */
	VP_FSETH(vpDisplayHandle, VDCTL, BLKDIS, VP_VDCTL_BLKDIS_CLEAR);	
}
/*................................................................ */
/* Function : VPDispIsr */
/* Description : This display ISR clears FRMD to continue display */
/* in this non.continuous mode and also clears other */
/* status bits. */
/*................................................................ */
interrupt void VPDispIsr(void)
{
	Uint32 vpis = 0;
	vpis = VP_RGETH(vpDisplayHandle , VPIS);
	if(vpis & _VP_VPIS_DCMP_MASK) /* frame display complete */
	{
		/* Clear frame complete bit FRMD to continue display */
		VP_FSETH(vpDisplayHandle , VDSTAT, FRMD,
		VP_VDSTAT_FRMD_CLEAR);
		/* clear DCMPA to enable next frame complete interrupts */
		VP_FSETH(vpDisplayHandle , VPIS, DCMP, VP_VPIS_DCMP_CLEAR);
		displayFrameCount++; /* increment displayed frame count */
	}
	if(vpis & _VP_VPIS_DUND_MASK) /* underrun error */
	{
		dispUnderrun++;
		/* clear DUND to enable next underrun interrupts */
		VP_FSETH(vpDisplayHandle , VPIS, DUND, VP_VPIS_DUND_CLEAR);
	}
}
/*................................................................ */
/* Function : setupVPDispEDMA */
/* Input(s) : portNumber, video port number i.e. 0,1 or 2. */
/* Description : Sets up DMA channels for Y, U, V events for VP */
/* display. */
/*................................................................ */
void setupVPDispEDMA(Int32 portNumber)
{
	Int32 YEvent, UEvent, VEvent;
	/* get Y, U, V EDMA event numbers */
	switch(portNumber)
	{
		case VP_DEV0: 
			YEvent = EDMA_CHA_VP0EVTYA;
			UEvent = EDMA_CHA_VP0EVTUA;
			VEvent = EDMA_CHA_VP0EVTVA;
			break;
		case VP_DEV1: 
			YEvent = EDMA_CHA_VP1EVTYA;
			UEvent = EDMA_CHA_VP1EVTUA;
			VEvent = EDMA_CHA_VP1EVTVA;
			break;
		case VP_DEV2: 
			YEvent = EDMA_CHA_VP2EVTYA;
			UEvent = EDMA_CHA_VP2EVTUA;
			VEvent = EDMA_CHA_VP2EVTVA;
			break;
	}
	/* Configure Y EDMA channel to move data from */
	/* Y.data buffer, dispYSpace to YDSTA (FIFO) */
	configVPDispEDMAChannel(&hEdmaVPDispY, YEvent,
							&edmaDispYTccNum,
							(Uint32)dispYSpace,
							vpDisplayHandle ->ydstaAddr,
							VD_Y_EDMA_FRMCNT,
							VD_Y_EDMA_ELECNT);
	/* Configure Cb EDMA channel to move data from */
	/* Cb.data buffer, dispCbSpace to CbDSTA (FIFO) */
	configVPDispEDMAChannel(&hEdmaVPDispCb, UEvent,
							&edmaDispCbTccNum,
							(Uint32)dispCbSpace,
							vpDisplayHandle ->cbdstAddr,
							VD_Y_EDMA_FRMCNT,
							VD_Y_EDMA_ELECNT/2); /* (1/2) of Y */
	/* Configure Cr EDMA channel to move data from */
	/* Cr.data buffer, dispCrSpace to CrDSTA (FIFO) */
	configVPDispEDMAChannel(&hEdmaVPDispCr, VEvent,
							&edmaDispCrTccNum,
							(Uint32)dispCrSpace,
							vpDisplayHandle ->crdstAddr,
							VD_Y_EDMA_FRMCNT,
							VD_Y_EDMA_ELECNT/2);
	/* enable three EDMA channels */
	EDMA_enableChannel(hEdmaVPDispY);
	EDMA_enableChannel(hEdmaVPDispCb);
	EDMA_enableChannel(hEdmaVPDispCr);
}
/*................................................................ */
/* Function : configVPDispEDMAChannel */
/* */
/* Input(s) : edmaHandle . pointer to EDMA handle. */
/* eventId . EDMA eventId. */
/* tccNum . pointer to transfer complete number. */
/* srcAddr . source address for EDMA transfer. */
/* dstAddr . destination address for EDMA transfer */
/* frameCount . frame count. */
/* elementCount . element count(32.bit element size). */
/* */
/* Output(s): edmaHandle . edma Handle of the given event. */
/* tccNum . transfer complete code for the given */
/* event. */
/* */
/* Description : Configures the given VP display EDMA channel. */
/* The destination address update is fixed because */
/* the displayed data is write to the FIFO. */
/* In this example, the source address mode is */
/* auto.increment. But, in real.time applications */
/* there is lot of flexibility in the way display */
/* buffers can be managed like ping.pong and round */
/* robin,…etc. */
/*................................................................ */
void configVPDispEDMAChannel( EDMA_Handle *edmaHandle,
							  Int32 eventId, Int32 *tccNum,
							  Uint32 srcAddr, Uint32 dstAddr,
							  Uint32 frameCount, Uint32 elementCount)
{
	Int32 tcc = 0;
	/* Open Y event EDMA channel */
	*edmaHandle = EDMA_open(eventId, EDMA_OPEN_RESET);
	if(*edmaHandle == EDMA_HINV)
	{
		for(;;){}
	}
	/* allocate TCC for Y event */
	if((tcc = EDMA_intAlloc(.1)) == .1)
	{
		for(;;){}
	}
	/* Configure EDMA parameters */
	EDMA_configArgs(
		*edmaHandle,
		EDMA_OPT_RMK(
			EDMA_OPT_PRI_MEDIUM, /* medium priority */
			EDMA_OPT_ESIZE_32BIT, /* Element size 32 bits */
			EDMA_OPT_2DS_YES, /* 2.dimensional source */
			EDMA_OPT_SUM_INC, /* source address auto increment */
			EDMA_OPT_2DD_NO, /* 1.dimensional destination(FIFO) */
			EDMA_OPT_DUM_NONE, /* fixed dest address mode(FIFO) */
			EDMA_OPT_TCINT_YES, /* Enable transfer complete */
			/* indication */
			EDMA_OPT_TCC_OF(tcc & 0xF),
			EDMA_OPT_TCCM_OF(((tcc & 0x30) >> 4)),
			EDMA_OPT_ATCINT_NO, /* Disable Alternate Transfer */
			/* Complete Interrupt */
			EDMA_OPT_ATCC_OF(0),
			EDMA_OPT_PDTS_DISABLE, /* disable PDT(peripheral device */
			/* transfer) mode for source */
			EDMA_OPT_PDTD_DISABLE, /* disable PDT mode for dest */
			EDMA_OPT_LINK_NO, /* Disable linking */
			EDMA_OPT_FS_NO /* Array synchronization */
		),
		EDMA_SRC_RMK(srcAddr),
		EDMA_CNT_RMK(EDMA_CNT_FRMCNT_OF((frameCount-1)),
					 EDMA_CNT_ELECNT_OF(elementCount)),
		EDMA_DST_RMK(dstAddr),
		EDMA_IDX_RMK(EDMA_IDX_FRMIDX_OF((elementCount * 4)),
		EDMA_IDX_ELEIDX_OF(0)), /* note: 32.bit element size */
		/* no RLD in 2D and no linking */
		EDMA_RLD_RMK(EDMA_RLD_ELERLD_OF(0), EDMA_RLD_LINK_OF(0))
		);
		
	    *tccNum = tcc;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大片国产精品| 一区二区三区中文字幕| 一区二区三区四区在线免费观看| 日本美女一区二区三区| 成人av网站大全| 欧美成va人片在线观看| 亚洲黄色性网站| 国产精品77777竹菊影视小说| 欧美性猛交xxxxxx富婆| 亚洲国产经典视频| 奇米精品一区二区三区在线观看 | 国产乱码精品一区二区三 | 在线电影欧美成精品| 中文字幕久久午夜不卡| 久久精品av麻豆的观看方式| 欧美羞羞免费网站| 综合欧美亚洲日本| 福利一区二区在线观看| 精品88久久久久88久久久| 天天av天天翘天天综合网| 91在线视频免费观看| 国产午夜精品美女毛片视频| 美女视频免费一区| 制服丝袜在线91| 亚洲大片一区二区三区| 色婷婷av一区二区三区gif| 国产精品人人做人人爽人人添| 国产在线不卡视频| 日韩欧美高清一区| 毛片av一区二区三区| 欧美一区二区视频网站| 首页综合国产亚洲丝袜| 欧美日韩精品免费| 日韩在线a电影| 日韩欧美在线网站| 久久精品99久久久| wwwwww.欧美系列| 国产凹凸在线观看一区二区| 国产欧美一区二区三区在线老狼| 国产自产v一区二区三区c| 精品久久久久久久久久久久久久久久久| 日本一不卡视频| 日韩欧美的一区| 国产成人免费在线视频| 国产精品网站在线播放| 波多野结衣亚洲一区| 亚洲色图视频网| 欧美日本视频在线| 日本在线不卡视频一二三区| 精品成人一区二区三区| 国产激情91久久精品导航| 国产色综合一区| 91福利在线看| 奇米综合一区二区三区精品视频| 久久伊人蜜桃av一区二区| 成人美女在线视频| 亚洲女厕所小便bbb| 欧美三级视频在线播放| 免费精品视频在线| 欧美国产精品一区| 欧美性做爰猛烈叫床潮| 精品午夜久久福利影院| 国产精品视频免费看| 欧美亚洲丝袜传媒另类| 美女视频网站久久| 亚洲欧洲精品一区二区三区不卡| 欧美日韩免费观看一区二区三区| 韩国毛片一区二区三区| 综合分类小说区另类春色亚洲小说欧美 | av激情亚洲男人天堂| 一区二区在线电影| 精品国免费一区二区三区| 99在线视频精品| 玖玖九九国产精品| 1区2区3区欧美| 欧美成va人片在线观看| 色综合天天综合网天天看片| 免费成人在线观看| 亚洲人快播电影网| 欧美大黄免费观看| 91福利在线导航| 懂色av噜噜一区二区三区av| 男人的天堂久久精品| 亚洲日本护士毛茸茸| 精品国产伦理网| 欧美视频第二页| 成人激情综合网站| 久久精品国产99| 日韩av电影天堂| 亚洲成人一区在线| 国产精品久久久久久久第一福利| 欧美v日韩v国产v| 欧美日韩一区 二区 三区 久久精品| 国产一区999| 美女国产一区二区三区| 亚洲第一激情av| 亚洲一区二区3| 亚洲免费在线观看| 久久九九全国免费| 久久综合资源网| 精品日韩一区二区三区| 欧美午夜寂寞影院| 91香蕉视频污| 波多野洁衣一区| 成人免费毛片a| www.综合网.com| av在线不卡网| 91视频免费播放| 色天天综合久久久久综合片| 99国产精品视频免费观看| 成人av网站大全| 99视频一区二区三区| 97久久精品人人澡人人爽| 91丝袜国产在线播放| 国产成人在线色| 不卡一二三区首页| 成人午夜激情视频| 97久久精品人人做人人爽| 91在线小视频| 欧美亚日韩国产aⅴ精品中极品| 在线亚洲一区二区| 欧美视频在线观看一区二区| 欧美日本一道本在线视频| 欧美日韩高清在线| 在线综合亚洲欧美在线视频| 日韩午夜三级在线| 2023国产一二三区日本精品2022| 国产日韩精品一区二区三区| 国产精品色噜噜| 亚洲精品乱码久久久久久黑人| 亚洲成人资源网| 加勒比av一区二区| 粉嫩av亚洲一区二区图片| 成人h动漫精品一区二区| 色综合婷婷久久| 欧美高清视频www夜色资源网| 日韩欧美视频在线| 国产午夜久久久久| 玉足女爽爽91| 精品一区精品二区高清| 成人国产亚洲欧美成人综合网 | 丁香一区二区三区| 91麻豆视频网站| 69p69国产精品| 国产色婷婷亚洲99精品小说| 亚洲黄网站在线观看| 麻豆一区二区三| 99免费精品视频| 日韩色视频在线观看| 中文字幕精品一区| 亚洲bt欧美bt精品| 国产精品99久久久| 欧美日韩免费高清一区色橹橹| 久久久久久久久久久久久女国产乱 | 一本大道综合伊人精品热热 | 国产精品久久久久久久久图文区| 亚洲一区欧美一区| 国产揄拍国内精品对白| 欧美在线你懂的| 国产精品视频在线看| 午夜精品久久久久久久久久| 国产 日韩 欧美大片| 337p亚洲精品色噜噜| 最新不卡av在线| 久久精品理论片| 91久久久免费一区二区| 精品乱人伦小说| 亚洲成人av一区| av影院午夜一区| 久久综合九色综合欧美98 | 欧美三级中文字幕| 国产精品久久久久婷婷| 久久99久久久久久久久久久| 欧美性大战久久久久久久| 国产精品青草综合久久久久99| 麻豆精品视频在线观看| 欧美最猛黑人xxxxx猛交| 国产欧美日韩三级| 美腿丝袜亚洲色图| 欧美乱熟臀69xxxxxx| 一区二区三区高清| 不卡视频一二三| 中文字幕第一区综合| 精品一区二区三区视频| 日韩一级免费观看| 日韩国产欧美一区二区三区| 欧美最新大片在线看| 亚洲乱码国产乱码精品精的特点| 国产白丝精品91爽爽久久| 2024国产精品| 九九精品视频在线看| 日韩亚洲欧美在线| 日本成人中文字幕在线视频| 欧美电影一区二区三区| 亚洲国产精品久久久久婷婷884| 色综合久久天天| 亚洲黄一区二区三区| 色婷婷综合久久久| 亚洲精品国产精品乱码不99 | av电影在线观看不卡|