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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? lcd.c

?? ADSP-BF537Display部分的代碼
?? C
字號(hào):
/*=============================================================================
=
= Name:     QVGA Display and Timer Verification and Example Code
=
===============================================================================
=
= (C) Copyright 2006 - Analog Devices, Inc.  All rights reserved.
=
= File Name :   lcd.c
=
= Date      :   12/21/06
=
= Target    :   ADSP-BF537
=
= Version   :   1.0
=
= Purpose   :   Test the display with a bitmap
=
=
=
==============================================================================*/

#undef  BF537_EZKIT_PPI_DEBUG
#define BF537_EZKIT_PPI_PICTURE

#ifdef BF537_EZKIT_PPI_PICTURE
#define BMP_Header_Length	54				// 54 Byte header
#endif /* BF537_EZKIT_PPI_PICTURE */

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



	File:			LCD channel



	Description:	Controls the interface to the LCD of the BF537_EZKIT board



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


#ifdef BF537_EZKIT_PPI_PICTURE
#include <stdio.h>
#endif /* BF537_EZKIT_PPI_PICTURE */
#include <drivers/adi_dev.h>
#include <drivers/ppi/adi_ppi.h>
#include "timers.h"
#include "debug.h"

//---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------

// BF537 EZ-Kit LCD Flags
#define BF537_EZKIT_LCD_FLAG_MOD		ADI_FLAG_PF10
#define BF537_EZKIT_LCD_FLAG_UD			ADI_FLAG_PF13
#define BF537_EZKIT_LCD_FLAG_LBR		ADI_FLAG_PF14

//---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------

// PPI Driver
ADI_DEV_DEVICE_HANDLE PPIDriverHandle;
static ADI_DEV_2D_BUFFER PictureDMADescriptor;

 
#ifdef BF537_EZKIT_PPI_PICTURE
char Bitmap[320*240*3+BMP_Header_Length];
#endif /* BF537_EZKIT_PPI_PICTURE */
int Frame[240*(320+START_LINES+U_LINES)];

//---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------

void PPICallback (void *appHandle, unsigned long  event, void *pArg)
{
	// watch for errors
	if (event != ADI_DEV_EVENT_BUFFER_PROCESSED)
		BF537_EZKIT_Throw ("PPI event error %x\n", event);
}

//---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------

void OpenLCD (ADI_DEV_MANAGER_HANDLE DeviceManagerHandle, 
			  ADI_DMA_MANAGER_HANDLE DMAManagerHandle, 
			  ADI_DCB_HANDLE DeferredCallbackManagerHandle)
{
	int data;
	int ret;

	//----------------------------------------------------------

	// Turn on the LCD
	ret = adi_flag_Open (BF537_EZKIT_LCD_FLAG_MOD);
	if (ret != ADI_FLAG_RESULT_SUCCESS)
		BF537_EZKIT_Throw ("Error Flag open BF537_EZKIT_LCD_FLAG_MOD\n");
	ret = adi_flag_SetDirection (BF537_EZKIT_LCD_FLAG_MOD, ADI_FLAG_DIRECTION_OUTPUT); 
	if (ret != ADI_FLAG_RESULT_SUCCESS)
		BF537_EZKIT_Throw ("Error Flag SetDirection BF537_EZKIT_LCD_FLAG_MOD\n");
	ret = adi_flag_Set (BF537_EZKIT_LCD_FLAG_MOD); 
	if (ret != ADI_FLAG_RESULT_SUCCESS)
		BF537_EZKIT_Throw ("Error Flag Setting BF537_EZKIT_LCD_FLAG_MOD\n");


	ret = adi_flag_Open (BF537_EZKIT_LCD_FLAG_UD);
	if (ret != ADI_FLAG_RESULT_SUCCESS)
		BF537_EZKIT_Throw ("Error Flag open BF537_EZKIT_LCD_FLAG_UD\n");
	ret = adi_flag_SetDirection (BF537_EZKIT_LCD_FLAG_UD, ADI_FLAG_DIRECTION_OUTPUT); 
	if (ret != ADI_FLAG_RESULT_SUCCESS)
		BF537_EZKIT_Throw ("Error Flag SetDirection BF537_EZKIT_LCD_FLAG_UD\n");
	ret = adi_flag_Set (BF537_EZKIT_LCD_FLAG_UD); 
	if (ret != ADI_FLAG_RESULT_SUCCESS)
		BF537_EZKIT_Throw ("Error Flag Setting BF537_EZKIT_LCD_FLAG_UD\n");
		
	ret = adi_flag_Open (BF537_EZKIT_LCD_FLAG_LBR);
	if (ret != ADI_FLAG_RESULT_SUCCESS)
		BF537_EZKIT_Throw ("Error Flag open BF537_EZKIT_LCD_FLAG_LBR\n");
	ret = adi_flag_SetDirection (BF537_EZKIT_LCD_FLAG_LBR, ADI_FLAG_DIRECTION_OUTPUT); 
	if (ret != ADI_FLAG_RESULT_SUCCESS)
		BF537_EZKIT_Throw ("Error Flag SetDirection BF537_EZKIT_LCD_FLAG_LBR\n");
	ret = adi_flag_Set (BF537_EZKIT_LCD_FLAG_LBR); 
	if (ret != ADI_FLAG_RESULT_SUCCESS)
		BF537_EZKIT_Throw ("Error Flag Setting BF537_EZKIT_LCD_FLAG_LBR\n");
	
	//----------------------------------------------------------

#ifdef BF537_EZKIT_PPI_PICTURE
	FILE* fpBitmap;
	char* pBitmap;
	short* debug_buffer = (short*) Frame;
	char blue, green, red;
	short temp_pixel;
	int i, j;

	// Open Bitmap file. Note: Only 240x320 files accepted	
	fpBitmap = fopen ("..\\picture.bmp", "rb");
	if (fpBitmap == NULL)
		BF537_EZKIT_Throw ("Error opening bitmap file\nMake sure that c:\\temp\\picture.bmp exists\n");
    ret = fread (Bitmap, 1, 320*240*3+BMP_Header_Length, fpBitmap);
	if (ret == 0)
		BF537_EZKIT_Throw ("Error reading bitmap file\n");
	
	//Create_Data (Frame, Image_BMP);
    pBitmap = Bitmap + BMP_Header_Length;
	for (i=0; i<START_LINES; i++)
	{
	    for (j=0; j<240; j++)
	    {
			*debug_buffer++ = 0xFFFF;
	    }
	}
	for (i=0; i<320; i++)
	{
	    for (j=0; j<240; j++)
	    {
	        blue = *pBitmap++;
	        green = *pBitmap++;
	        red = *pBitmap++;
	        temp_pixel = (blue & 0xF8) << 8;
	        temp_pixel |= (green & 0xFC) << 3;
	        temp_pixel |= (red & 0xF8) >> 3;
	        *debug_buffer++ = temp_pixel;
	    }
	}
	fclose (fpBitmap);
#endif /* BF537_EZKIT_PPI_PICTURE */

#ifdef BF537_EZKIT_PPI_DEBUG
	short* debug_buffer = (short*) Frame;
	int i, j;
	
	for (i=0; i<START_LINES; i++)
	{
	    for (j=0; j<240; j++)
	    {
			*debug_buffer++ = 0xFFFF;
	    }
	}
	for (i=0; i<320; i++)
	{
	    for (j=0; j<240; j++)
	    {
			// Color map
			// [15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00]
			// [b4 b3 b2 b1 b0 g5 g4 g3 g2 g1 g0 r4 r3 r2 r1 r0]

			if (i<20) debug_buffer[240*i+j] = 				0x0000;
			if ((i>=20)&&(i<40)) debug_buffer[240*i+j] = 	0x0007;
			if ((i>=40)&&(i<60)) debug_buffer[240*i+j] = 	0x000F;
			if ((i>=60)&&(i<80)) debug_buffer[240*i+j] = 	0x0017;
			if ((i>=80)&&(i<100)) debug_buffer[240*i+j] = 	0x001F;
			if ((i>=100)&&(i<120)) debug_buffer[240*i+j] = 	0x0000;
			if ((i>=120)&&(i<140)) debug_buffer[240*i+j] = 	0x01E0;
			if ((i>=140)&&(i<160)) debug_buffer[240*i+j] = 	0x03E0;
			if ((i>=160)&&(i<180)) debug_buffer[240*i+j] =	0x05E0;
			if ((i>=180)&&(i<200)) debug_buffer[240*i+j] =	0x07E0;
			if ((i>=200)&&(i<220)) debug_buffer[240*i+j] = 	0x0000;
			if ((i>=220)&&(i<240)) debug_buffer[240*i+j] = 	0x3800;
			if ((i>=240)&&(i<260)) debug_buffer[240*i+j] = 	0x7800;
			if ((i>=260)&&(i<280)) debug_buffer[240*i+j] = 	0xB800;
			if ((i>=280)&&(i<300)) debug_buffer[240*i+j] = 	0xF800;
			if ((i>=300)&&(i<320)&&(j<120)) debug_buffer[240*i+j] = 0x0000;
			if ((i>=300)&&(i<320)&&(j>=120)) debug_buffer[240*i+j] = 0xFFFF;
	    }
	}
#endif /* BF537_EZKIT_PPI_DEBUG */
 
	//----------------------------------------------------------
	
	// Prepare the DMA Descriptor
	PictureDMADescriptor.Data = Frame;
	PictureDMADescriptor.ElementWidth = 2;
	PictureDMADescriptor.XCount = 240;
	PictureDMADescriptor.XModify = 2;
	PictureDMADescriptor.YCount = 320+START_LINES+U_LINES;
	PictureDMADescriptor.YModify = 2;
	PictureDMADescriptor.CallbackParameter = (void*) Frame;
	PictureDMADescriptor.pNext = 0;
	
	// open the PPI driver for output
	ret = adi_dev_Open (DeviceManagerHandle, &ADIPPIEntryPoint, 0, NULL, 
		&PPIDriverHandle, ADI_DEV_DIRECTION_OUTBOUND, 
		DMAManagerHandle, DeferredCallbackManagerHandle, PPICallback);
//		DMAManagerHandle, NULL, PPICallback);
	if (ret != 0) 
		BF537_EZKIT_Throw ("adi_dev_Open PPI error\n");

	// configure the PPI driver with the values from the configuration table
	// QVGA configuration table
	static ADI_DEV_CMD_VALUE_PAIR Configuration_BF537_EZKIT_ppi[] = 
	{		
		{ ADI_DEV_CMD_SET_DATAFLOW_METHOD, 		(void*) ADI_DEV_MODE_CHAINED_LOOPBACK },
		{ ADI_PPI_CMD_SET_CONTROL_REG,	 		(void*) 0x0000				},	// Reset settings
		{ ADI_PPI_CMD_SET_DELAY_COUNT_REG,		(void*) (0)					},	// 3 cycles after HSYNC and VSYNC high
		{ ADI_PPI_CMD_SET_TRANSFER_COUNT_REG,	(void*) (240-1)				},	// 240 pixels / line
		{ ADI_PPI_CMD_SET_LINES_PER_FRAME_REG,	(void*) (320+START_LINES+U_LINES) },	// 320 lines / frame
		{ ADI_PPI_CMD_SET_FS_INVERT,			(void*) FALSE				},	// HSYNC and VSYNC rising edge asserted
		{ ADI_PPI_CMD_SET_CLK_INVERT,			(void*) FALSE				},	// PPI drives data on falling edge of PPI_CLK
		{ ADI_PPI_CMD_SET_DATA_LENGTH,			(void*) 0x7					},	// 16 bit of data 565 RGB
		{ ADI_PPI_CMD_SET_SKIP_EVEN_ODD,		(void*) 0					},	// Don't care
		{ ADI_PPI_CMD_SET_SKIP_ENABLE,			(void*) 0					},	// Skipping disabled
		{ ADI_PPI_CMD_SET_PACK_ENABLE,			(void*) 0					},	// Don't care
		{ ADI_PPI_CMD_SET_ACTIVE_FIELD_SELECT,	(void*) 0					},	// Don't care
		{ ADI_PPI_CMD_SET_PORT_CFG,				(void*) 1					},	// 2 or 3 frame syncs
		{ ADI_PPI_CMD_SET_TRANSFER_TYPE,		(void*) 3					},	// Output mode with 1, 2 or 3 frame syncs
		{ ADI_PPI_CMD_SET_PORT_DIRECTION,		(void*) TRUE				},	// Outbound
		{ ADI_PPI_CMD_SET_TRIPLE_FRAME_SYNC,	(void*) FALSE				},	// No triple frame sync
		{ ADI_PPI_CMD_SET_TIMER_FRAME_SYNC_1,	(void*) FALSE				},	// All timers are controlled by system services
		{ ADI_PPI_CMD_SET_TIMER_FRAME_SYNC_2,	(void*) FALSE				},	// All timers are controlled by system services
		{ ADI_DEV_CMD_SET_STREAMING,			(void*) TRUE				},	// Enables streaming mode of the driver
		{ ADI_DEV_CMD_END, NULL	}
	};
	
	ret = adi_dev_Control (PPIDriverHandle, ADI_DEV_CMD_TABLE, Configuration_BF537_EZKIT_ppi);
	if (ret != 0) 
		BF537_EZKIT_Throw ("adi_dev_Control PPI error\n");

	//----------------------------------------------------------

	// Initialize the timers for the LCD
	OpenTimersForLCD ();
}

//---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------

void CloseLCD (void)
{
//	void* address = (void*) I2C_ADDRESS_16BIT_IO_EXPANDER;
	int data;
	int ret;

	// Stop the PPI driver
	ret = adi_dev_Control (PPIDriverHandle, ADI_DEV_CMD_SET_DATAFLOW, (void*) FALSE);
	if (ret != 0) 
		BF537_EZKIT_Throw ("adi_dev_Control PPI close error\n");
		
}

//---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------

void StartLCD (void)
{
	int ret;

    // Start the timers first
    StartTimersForLCD ();
    
    // Start the PPI	
	ret = adi_dev_Write (PPIDriverHandle, ADI_DEV_2D, (ADI_DEV_BUFFER*) &PictureDMADescriptor);
	if (ret != 0) 
		BF537_EZKIT_Throw ("adi_dev_Write PPI StartLCD error\n");

	// enable data flow
	ret = adi_dev_Control (PPIDriverHandle, ADI_DEV_CMD_SET_DATAFLOW, (void*) TRUE);
	if (ret != 0) 
		BF537_EZKIT_Throw ("adi_dev_Control PPI StartLCD error\n");
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91在线观看丝袜| 精品国产91乱码一区二区三区| 成人国产精品视频| 国产精品1区2区| 青青草视频一区| 日本在线不卡一区| 日本三级亚洲精品| 久久精品国产亚洲a| 麻豆成人av在线| 黄页网站大全一区二区| 国内不卡的二区三区中文字幕 | 国产欧美一区二区精品性色| 精品国产免费视频| 国产日产欧产精品推荐色| 久久精品人人做| 国产精品伦一区| 亚洲激情校园春色| 性做久久久久久| 三级欧美韩日大片在线看| 日韩成人免费看| 久久99久国产精品黄毛片色诱| 久久99国产精品麻豆| 粉嫩av一区二区三区在线播放| 成人激情午夜影院| 色视频一区二区| 91精品国产丝袜白色高跟鞋| 日韩欧美国产精品一区| 国产日韩精品一区二区浪潮av | 亚洲国产美女搞黄色| 天天影视网天天综合色在线播放| 男女男精品视频| 国产成人在线视频播放| 99在线精品免费| 欧美日韩高清在线| 久久综合五月天婷婷伊人| 国产精品国产三级国产aⅴ原创 | 偷偷要91色婷婷| 国产一区二区三区电影在线观看| 高清免费成人av| 欧美影片第一页| 亚洲精品一区二区三区蜜桃下载| 国产精品伦一区| 三级精品在线观看| 粉嫩一区二区三区在线看| 欧美日韩亚洲丝袜制服| 久久精品一区二区三区av| 亚洲欧美一区二区三区久本道91| 偷偷要91色婷婷| 国产成人午夜电影网| 欧美日精品一区视频| 久久久亚洲高清| 亚洲国产精品一区二区久久| 精品亚洲成av人在线观看| 色哟哟欧美精品| 亚洲精品在线三区| 亚洲天天做日日做天天谢日日欢| 秋霞av亚洲一区二区三| 一本久久精品一区二区| 日韩精品一区二区三区四区 | 国产一区二区毛片| 欧美亚洲精品一区| 欧美韩国日本不卡| 美女网站一区二区| 色婷婷国产精品| 久久久国产精品麻豆| 天堂精品中文字幕在线| jizzjizzjizz欧美| 久久亚洲精精品中文字幕早川悠里| 亚洲精品伦理在线| 国产成人午夜99999| 日韩一区二区免费在线观看| 亚洲人成伊人成综合网小说| 国产精品综合视频| 欧美一区二区精品在线| 一区二区三区日韩在线观看| 国产91丝袜在线播放九色| 日韩三级.com| 天堂久久久久va久久久久| 91亚洲精品乱码久久久久久蜜桃| 久久久精品黄色| 久久精品免费看| 欧美二区三区的天堂| 亚洲免费在线观看视频| 懂色av一区二区夜夜嗨| 久久久精品中文字幕麻豆发布| 蜜桃免费网站一区二区三区| 欧美怡红院视频| 亚洲综合图片区| 欧美性受xxxx| 亚洲一区二区三区中文字幕| 波多野结衣在线aⅴ中文字幕不卡| 日韩免费观看高清完整版| 日韩中文字幕区一区有砖一区| 欧洲亚洲国产日韩| 亚洲欧洲色图综合| a4yy欧美一区二区三区| 国产精品成人午夜| 99久久综合狠狠综合久久| 国产免费成人在线视频| 国产成人99久久亚洲综合精品| 精品国内二区三区| 精品亚洲国产成人av制服丝袜| 精品国产一区二区精华| 狠狠网亚洲精品| 久久久久久99久久久精品网站| 韩国v欧美v日本v亚洲v| 国产午夜精品一区二区三区视频| 国产一区高清在线| 国产婷婷色一区二区三区四区| 国产在线精品免费av| 久久久精品国产免费观看同学| 国产成人精品www牛牛影视| 国产精品妹子av| 色狠狠一区二区| 一区二区三区鲁丝不卡| 欧美三级视频在线| 日韩二区三区四区| 久久综合久久久久88| 成人污视频在线观看| 一区二区三区在线视频播放| 92精品国产成人观看免费| 亚洲人xxxx| 欧美日韩国产中文| 美国毛片一区二区| 国产亚洲成av人在线观看导航| 本田岬高潮一区二区三区| 亚洲一区二区三区自拍| 日韩一级免费观看| 国产suv精品一区二区6| 日韩美女啊v在线免费观看| 欧美性三三影院| 久久精品国产免费| 国产精品日产欧美久久久久| 日本丶国产丶欧美色综合| 丝袜亚洲另类欧美综合| 精品日韩99亚洲| 99久久精品国产一区| 午夜视频在线观看一区| 欧美精品一区二区三区蜜臀| yourporn久久国产精品| 日韩精品一级中文字幕精品视频免费观看| 精品剧情v国产在线观看在线| 成人免费高清视频在线观看| 亚洲风情在线资源站| 欧美精品一区二区久久婷婷| 色综合久久综合网97色综合| 免费成人在线影院| 中文成人av在线| 欧美另类变人与禽xxxxx| 国产精品1区二区.| 视频在线观看一区| 亚洲国产经典视频| 欧美肥妇bbw| 99久精品国产| 韩国欧美国产一区| 亚洲一级二级在线| 日本一区二区成人| 日韩视频在线你懂得| 91亚洲大成网污www| 狠狠色综合色综合网络| 亚洲国产综合视频在线观看| 国产欧美日韩在线| 7777精品伊人久久久大香线蕉经典版下载 | 国产欧美一区二区精品忘忧草| 欧美欧美午夜aⅴ在线观看| 成人在线综合网| 日本vs亚洲vs韩国一区三区二区 | 一区二区三区精品在线| 国产欧美日韩另类一区| 4438成人网| 在线观看av一区二区| 成人一区二区三区| 精品制服美女丁香| 无吗不卡中文字幕| 一区二区三区在线观看国产| 国产性做久久久久久| 精品国产sm最大网站| 欧美疯狂性受xxxxx喷水图片| 色婷婷综合五月| 成人精品视频一区二区三区 | 99国产精品久久久| 国产一区二区影院| 日本免费新一区视频| 亚洲精品国产精华液| 中文字幕一区在线观看| 精品国产凹凸成av人网站| 欧美一二区视频| 欧美另类高清zo欧美| 在线免费不卡视频| 色呦呦日韩精品| 色哟哟欧美精品| 91亚洲精品久久久蜜桃网站 | 欧亚一区二区三区| 99视频一区二区三区| 国产成人精品亚洲777人妖| 韩国视频一区二区| 国内成人自拍视频| 国产精品一区二区你懂的| 极品美女销魂一区二区三区免费 | 日韩一区二区电影网|