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

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

?? videoinlcdout.c

?? VideoInLcdOut for BF561
?? C
?? 第 1 頁 / 共 2 頁
字號:
/********* MACROS ************************************************************************/
#define   NTSC_MODE     	// Video frame is of NTSC format
//#define READ_REG_VALUE	// read/print register value enable/disable
#define	  NEC_LCD	
/*********************************************************************

Include files

*********************************************************************/
#include <drivers/adi_dev.h>			// Device manager includes
#include <drivers/decoder/adi_adv7183.h>		// AD7183 device driver includes
#if defined NEC_LCD
#include <drivers/lcd/nec/adi_nl6448BC33_54.h>
#else
#include <drivers/lcd/sharp/adi_lq10d368.h>
#endif
#include <drivers/twi/adi_twi.h>			// TWI device driver includes
//#include <drivers/ppi/adi_ppi.h>			// PPI device driver includes
#include <SDK-ezkitutilities.h>
#include <adi_ssl_Init.h>

#include "stdio.h"
#include "math.h"

/*********************************************************************

Prototypes

*********************************************************************/


/*****************************************************************************

Static data

*****************************************************************************/
#define NTSC	0
#define PAL 	1

// NTSC or PAL Video input
#define ACTIVE_FIELD_DATA_LEN		720	// Active field data length per line for PAL video format

#if defined NTSC_MODE	// NTSC mode
#define ACTIVE_FIELD_LINES	507		// Number of lines per active field frame for NTSC format   
#else // PAL mode
#define ACTIVE_FIELD_LINES	576		// Number of lines per active field frame for PAL format   
#endif

#define ACTIVE_FIELD_FRAME_SIZE	(ACTIVE_FIELD_DATA_LEN * ACTIVE_FIELD_LINES)
#define VIDEOHORZLINES		ACTIVE_FIELD_DATA_LEN/2
#define CROP_HORIZONTAL_LINES	20

#if defined NTSC_MODE	// NTSC mode
#define CROP_VIDEO_LINES	13
#define OFFSET_TO_ODD_FRAME	((ACTIVE_FIELD_LINES+1)/2)
#define IPOFFSET_EVEN	(CROP_VIDEO_LINES*VIDEOHORZLINES)+CROP_HORIZONTAL_LINES// VIDEO buffer offset for even frame
#define IPOFFSET_ODD	IPOFFSET_EVEN + (OFFSET_TO_ODD_FRAME*VIDEOHORZLINES)// VIDEO buffer offset for odd frame
#else
#define CROP_VIDEO_LINES	24
#define OFFSET_TO_ODD_FRAME	288
#define IPOFFSET_EVEN	(CROP_VIDEO_LINES*VIDEOHORZLINES)+CROP_HORIZONTAL_LINES// VIDEO buffer offset for even frame
#define IPOFFSET_ODD	IPOFFSET_EVEN + (OFFSET_TO_ODD_FRAME*VIDEOHORZLINES)// VIDEO buffer offset for odd frame
#endif

// VGA LCD output
#define VGA_WIDTH		640
#define VGA_PADLEFT		0
#define VGA_PADRIGHT		0

#define VGA_HEIGHT		480
#define VGA_PADTOP		33
#define VGA_PADBOTTOM		12

#define VGA_FRAME_WIDTH		(VGA_WIDTH+VGA_PADLEFT+VGA_PADRIGHT) // 640
#define VGA_FRAME_HEIGHT	(VGA_HEIGHT+VGA_PADTOP+VGA_PADBOTTOM) // 525
#define VGA_FRAME_SIZE		(VGA_FRAME_WIDTH*VGA_FRAME_HEIGHT) // 640*525

#define LCDHORZLINES	VGA_FRAME_WIDTH/2
#define OPOFFSET_EVEN	(VGA_PADTOP*LCDHORZLINES)// LCD buffer offset for even frame
#define OPOFFSET_ODD	((VGA_PADTOP+1)*LCDHORZLINES)//LCD buffer offset for odd frame





/*********************************************************************

memory for buffers and data

*********************************************************************/
// Define the DMA buffers for each frame.
// Because of SDRAM performance, each frame must be in a different bank.

section("vd0_sdram") volatile u16 sFrame0[ACTIVE_FIELD_FRAME_SIZE];
section("vd1_sdram") volatile u16 sFrame1[ACTIVE_FIELD_FRAME_SIZE];


section("vd2_sdram") volatile u16 sFrame2[VGA_FRAME_SIZE];

// Storage for YUV to RGB565 conversion
section("L1_data_a") static unsigned long InData[512],OutData[512];

// 2 input buffers used by AD7183
ADI_DEV_2D_BUFFER In1_Buffer2D, In2_Buffer2D;
 
// 2 output buffers used by LCD
ADI_DEV_2D_BUFFER Out1_Buffer2D, Out2_Buffer2D; 
/*********************************************************************

memory for initialization of system services and device manager

*********************************************************************/

/*********************************************************************

handles to device drivers

*********************************************************************/
ADI_DEV_DEVICE_HANDLE AD7183DriverHandle;// handle to the ad7183 driver
ADI_DEV_DEVICE_HANDLE LcdDriverHandle;// handle to the LCD driver

/*********************************************************************

static function prototypes

*********************************************************************/
// exception handlers
static ADI_INT_HANDLER(ExceptionHandler);
static ADI_INT_HANDLER(HWErrorHandler);
static void InitSystemServices(void); // system services initialization
static void CallbackFunction( void *AppHandle, u32 Event,void *pArg);// device driver callback function
static void InitADV7183_Start(void);
static void InitLcd_Start(void);
void convertFrame(u32 num);   
static void convertyuvrgb(unsigned short OutSize, unsigned long *Output, unsigned short InSize, unsigned long *Input);
static void Set7183RangeReg(void);// Set AD7183 Extended Output Control register
static void Read7183StatusReg(void); // Read AD7183 Status register

volatile bool Frame0Flag;
volatile bool Frame1Flag;

/*********************************************************************

	Function:	main
	Description:	Read in ITU656 NTSC or PAL video data into SDRAM input buffer.
			Convert YUV(4:2:2) to RGB565 format and store into SDRAM output buffer.
			Send the output buffer to the VGA LCD.
         
*********************************************************************/

void main(void)
{
	unsigned int i,Result;									// index
	u32	ResponseCount;								// response count
	
	
	// initialize the system services
	InitSystemServices();
	
	// enable LEDs and buttons
    	for (i = EZ_FIRST_LED; i < EZ_NUM_LEDS; i++){
        ezInitLED(i);
    	}
    	
    ezInitButton(EZ_LAST_BUTTON);
	
	// turn off LED's	
	ezTurnOffAllLEDs();

	
	                      
	//reset the processed buffer flag
	Frame0Flag = false;
	Frame1Flag = false;                      

	// initialize the decoder and start the input data flow
	InitADV7183_Start();

	// initialize the LCD and start the output data flow
	InitLcd_Start();
	
	
	// loop forever until the last push button is depressed
    	while (ezIsButtonPushed(EZ_LAST_BUTTON) == FALSE){
    	// convert processed buffer
    		if (Frame0Flag){
    		Frame0Flag = false;
    		convertFrame(0); // convert even field
    		}
    	
    		if (Frame1Flag){
    		Frame1Flag = false;
    		convertFrame(1); // convert odd field
    		}
 	
    	}

	// close the device
	ezErrorCheck(adi_dev_Close(AD7183DriverHandle));

	// close the device
	ezErrorCheck(adi_dev_Close(LcdDriverHandle));
	
	/* terminate the device */
	adi_ssl_Terminate();
	

}




/*********************************************************************

	Function:	CallbackFunction

	Description:	Each type of callback event has it's own unique ID
			so we can use a single callback function for all
			callback events.  The switch statement tells us
			which event has occurred.
			In the example, we'll get a callback when the PPI 
			has completed processing of the input buffer.
			Note that in the device driver model, in order to 
			generate a callback for buffer completion, the 
			CallbackParameter of the buffer must be set to a non-NULL 
			value.
*********************************************************************/

static void CallbackFunction(void *AppHandle,u32  Event,void *pArg)
{
	ADI_DEV_2D_BUFFER *p2DBuffer;	// pointer to the buffer that was processed
		
    	p2DBuffer = (ADI_DEV_2D_BUFFER *)pArg;
	
	switch (Event)
	{
		// CASE (buffer processed)
        	case ADI_DEV_EVENT_BUFFER_PROCESSED:
   	    		
    	    	if(p2DBuffer == &In1_Buffer2D){
    	    	 Frame0Flag = true;
    	    	}
    	    	else if(p2DBuffer == &In2_Buffer2D){
    	    	 Frame1Flag = true;
    	    	}
      	 
           	break;
           
                  // CASE (an error)
		case ADI_DEV_EVENT_DMA_ERROR_INTERRUPT:
			// turn on all LEDs and wait for help
			ezTurnOnAllLEDs();
			while (1) ;
			

	}

	// return
}

/*********************************************************************

	Function:		InitSystemServices

	Description:	Initializes the necessary system services.  

*********************************************************************/

void InitSystemServices(void) {
    
    // initialize the ezKit power,EBIU,DMA....
	adi_ssl_Init();	
		
	// enable and configure async memory
	ezInit(1);
}

/******************************************************************************

	Function: InitADV7183_Start
	
	Description: Open the ADV7183 device, configure the device, 
		     setup 2D output buffer and enable the data flow

******************************************************************************/
static void InitADV7183_Start(void)
{    
	
    	// this example uses the AV-Extender card, so disable the onboard video decoder
	ezDisableVideoDecoder();
	
	// Pseudo TWI will be used to access ADV7183 registers.
	// BF561 Ports (PF0=SCL,PF1=SDA) & Timer(Timer 3) used for Pseudo TWI
	adi_twi_pseudo_port TWIPseudo= {ADI_FLAG_PF0,ADI_FLAG_PF1,ADI_TMR_GP_TIMER_3,(ADI_INT_PERIPHERAL_ID)NULL};
	ADI_DEV_CMD_VALUE_PAIR PseudoTWIConfig[]={
	{ADI_TWI_CMD_SET_PSEUDO,(void *)(&TWIPseudo)},
	{ADI_DEV_CMD_SET_DATAFLOW_METHOD,(void *)ADI_DEV_MODE_SEQ_CHAINED},
	{ADI_DEV_CMD_SET_DATAFLOW,(void *)TRUE},
	{ADI_DEV_CMD_END,NULL}
	};
	
	
	// open the ad7183 driver
	ezErrorCheck(adi_dev_Open(adi_dev_ManagerHandle,		// DevMgr handle
				&ADIADV7183EntryPoint,		// pdd entry point
				0,				// device instance
	            (void *)0x7183,            // client handle (0x7183 will be given to the AD7183 decoder driver)
				&AD7183DriverHandle,			// DevMgr handle for this device
				ADI_DEV_DIRECTION_INBOUND,// data direction for this device
				adi_dma_ManagerHandle,			// handle to DmaMgr for this device
				NULL,				// handle to deferred callback service
				CallbackFunction));		// client's callback function
				
	/********* open AD7183-PPI ****************************************/		
	// open the AD7183-PPI device 0 (see Schematic)
	ezErrorCheck(adi_dev_Control(AD7183DriverHandle, ADI_AD7183_CMD_OPEN_PPI, (void *)0));
			
	// command PPI to work in NTSC or PAL mode

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久久久久看片| 国产精品久久精品日日| 国产偷国产偷精品高清尤物 | 日韩一区二区三区免费看 | 欧美吻胸吃奶大尺度电影 | 欧美一区二区美女| 亚洲啪啪综合av一区二区三区| 免费在线看一区| 91久久线看在观草草青青| 久久久久久久免费视频了| 奇米影视7777精品一区二区| 日本福利一区二区| 亚洲欧洲成人av每日更新| 国产在线一区观看| 9191久久久久久久久久久| 亚洲男人都懂的| 成人av在线网| 国产丝袜欧美中文另类| 国产综合色视频| 久久影院午夜片一区| 麻豆一区二区三| 日韩一区二区三区av| 性做久久久久久久免费看| 99re在线视频这里只有精品| 国产精品久久久久四虎| 福利电影一区二区| 国产日韩欧美不卡| 国产成人精品免费视频网站| 欧美大片日本大片免费观看| 日韩在线观看一区二区| 欧美日韩国产高清一区二区三区| 一区二区三区影院| 欧美影院午夜播放| 亚洲成人777| 欧美精品精品一区| 日本不卡一二三| 欧美一级生活片| 精品一区二区在线视频| 337p日本欧洲亚洲大胆色噜噜| 青青草成人在线观看| 欧美xingq一区二区| 韩日av一区二区| 日本一区二区成人在线| 99精品黄色片免费大全| 亚洲蜜桃精久久久久久久| 在线观看日韩毛片| 日韩精品一级二级| 欧美tickling挠脚心丨vk| 国产成人自拍网| 亚洲三级小视频| 欧美二区三区的天堂| 国产乱一区二区| 中文字幕一区二区三区四区 | 国产精品亚洲第一| 国产精品麻豆视频| 欧美视频一区二区三区| 久久99久久99小草精品免视看| 久久蜜桃av一区二区天堂| av男人天堂一区| 亚洲va欧美va人人爽| 日韩精品一区二区三区swag| 大胆欧美人体老妇| 亚洲综合色噜噜狠狠| 欧美一区二区三区在线观看| 国产成人免费视频一区| 一区二区三区资源| 精品国产1区二区| 色婷婷综合久色| 久久99国产精品久久99| 亚洲欧洲一区二区三区| 欧美一区二区三区色| 成人污视频在线观看| 亚洲成人黄色小说| 国产精品女人毛片| 欧美一区二区三区四区高清| 成人黄色小视频在线观看| 丝袜国产日韩另类美女| 中文字幕第一区二区| 7777精品伊人久久久大香线蕉的 | 成人欧美一区二区三区| 日韩视频在线永久播放| 91色婷婷久久久久合中文| 麻豆中文一区二区| 亚洲电影一区二区三区| 国产视频一区在线观看| 日韩欧美激情在线| 欧美日韩国产精品自在自线| 99国产精品久| 国产成人午夜电影网| 男女男精品视频| 亚洲成av人片在线| 亚洲日本电影在线| 中文字幕久久午夜不卡| 日韩免费视频一区二区| 欧美日韩视频在线一区二区| voyeur盗摄精品| 国产91丝袜在线18| 狠狠久久亚洲欧美| 久久99久久99| 热久久免费视频| 天天综合日日夜夜精品| 亚洲成人av电影在线| 亚洲午夜在线电影| 亚洲一区二区视频在线观看| 中文字幕一区二区三区不卡| 国产欧美一区二区在线观看| 久久综合99re88久久爱| 久久这里都是精品| 久久精品免视看| 久久午夜国产精品| 久久久久久久国产精品影院| 2022国产精品视频| 久久中文字幕电影| 欧美激情在线看| 国产片一区二区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 极品少妇一区二区三区精品视频| 偷拍日韩校园综合在线| 亚洲高清不卡在线观看| 天堂在线一区二区| 青青草97国产精品免费观看无弹窗版| 亚洲成人av在线电影| 天天综合日日夜夜精品| 麻豆成人久久精品二区三区小说| 激情小说亚洲一区| 韩国精品主播一区二区在线观看 | 亚洲免费在线观看| 亚洲最新视频在线观看| 香蕉av福利精品导航| 美国欧美日韩国产在线播放| 国产在线视频精品一区| 成人永久免费视频| 欧洲精品在线观看| 日韩欧美黄色影院| 国产精品天美传媒| 亚洲精品成人少妇| 日韩av不卡一区二区| 国产在线不卡一区| 91在线播放网址| 在线91免费看| 国产精品嫩草影院av蜜臀| 亚洲免费视频中文字幕| 久久精品国产77777蜜臀| 国产福利91精品一区| 欧美综合在线视频| 久久综合久久久久88| 亚洲最快最全在线视频| 国产一区二区福利视频| 一本高清dvd不卡在线观看| 91精品国产一区二区三区| 久久精品日韩一区二区三区| 一片黄亚洲嫩模| 国产成人综合自拍| 欧美色视频在线观看| 久久免费国产精品| 午夜久久久久久久久| 成人毛片在线观看| 日韩精品专区在线影院观看 | 久久一二三国产| 一区二区三区小说| 国产suv精品一区二区6| 欧美久久久久免费| 亚洲色图视频网| 久久精品国产久精国产爱| 在线亚洲人成电影网站色www| 日韩精品一区国产麻豆| 一区二区在线观看视频| 国产麻豆视频一区二区| 欧美剧情电影在线观看完整版免费励志电影| 精品免费国产二区三区| 亚洲福利视频一区| 色欧美88888久久久久久影院| 欧美大片在线观看一区二区| 亚洲成a人v欧美综合天堂下载| 高清久久久久久| 精品国产伦一区二区三区观看体验| 一区二区免费看| 99精品视频一区二区三区| 久久久久久99精品| 精品在线免费视频| 日韩欧美成人激情| 亚洲电影一级片| 欧美亚洲一区二区在线观看| 国产精品你懂的在线| 国产精品性做久久久久久| 精品日韩一区二区| 精品一区二区av| 欧美成人三级电影在线| 日韩**一区毛片| 日韩欧美一二三四区| 日韩福利电影在线| 7777精品伊人久久久大香线蕉的 | 91最新地址在线播放| 欧美韩日一区二区三区| 国产一区二区在线观看视频| 日韩一级片网址| 麻豆91精品视频| 日韩欧美国产wwwww| 狠狠狠色丁香婷婷综合激情| xvideos.蜜桃一区二区|