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

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

?? lcd_2102b.c

?? 一個(gè)很好的LCD驅(qū)動(dòng)開(kāi)發(fā)源程序,是信利的2102
?? C
字號(hào):
/**
 * @belief: transmit IS2102B LCD specific functions to lcd.c
 * Copyright (C) 2004 Anyka (GuangZhou) Software Technology Co., Ltd.
 * @author YiRuoxiang
 * @date 2006-03-21
 * @version 1.0
 * @ref Please refer to IS2102B_v1.2.pdf.
 * @NOTE
 * 18 bit LCD
 */
#define OS_AKRTOS

#include "lcd_2102b.h"
#include "akdefine.h"
#include "Eng_Graph.h"

#define MODE_65K_16BIT      0x08F80000
#define MODE_65K_8BIT       0x0dDA0000
#define MODE_4K_8BIT        0x05DA0000

//experienced data for adjusting contrast
static const T_U8 LCD_CONTRAST_REG[21] = {
	0x33, 0x37, 0x3B, 0x3F, 0x43,
	0x47, 0x4B, 0x4F, 0x53, 0x57,
	0x5C, 0x65, 0x6E, 0x77, 0x80,
	0x89, 0x92, 0x9B, 0xA4, 0xAD,
	0xB4
};

static const T_U16 init_cmdset[][2] = {
	{DELAY_FLAG, 50}, {0x0001, 0x0003}, {DELAY_FLAG,  1}, {0x0011, 0x0001}, {0x0001, 0x0003},
	{0x0028, 0x0000}, {0x0001, 0x0022},	{0x0020, 0x0000}, {DELAY_FLAG, 10},	{0x0012, 0x0028},
	{0x0000, 0x001A}, {0x0000, 0x0019}, {0x0010, 0x0021}, {0x0005, 0x0018}, {0x0001, 0x001E}, 
	{0x0047, 0x0018}, {0x0067, 0x0018}, {0x00F7, 0x0018}, {0x0000, 0x0021},	{0x0004, 0x0019}, 
	{0x0065, 0x001F}, {0x0063, 0x0020}, {0x0083, 0x001E}, {0x0010, 0x0001}, {0x0000, 0x0002},
	{0x0000, 0x0005}, {0x0000, 0x000D}, {0x0000, 0x000E}, {0x0000, 0x000F}, {0x0000, 0x0010}, 
	{0x0000, 0x0011}, {0x0000, 0x0012}, {0x0000, 0x0013}, {0x0000, 0x0014}, {0x0000, 0x0015},
	{0x0000, 0x0016}, {0x0000, 0x0017}, {0x000B, 0x001B}, {0x000E, 0x001D}, {0x0001, 0x0033},
	{0x0001, 0x0037}, {0x0000, 0x003C}, {0x0000, 0x003D}, {0x0001, 0x003E}, {0x003F, 0x003F},
	{0x0008, 0x0040}, {0x0008, 0x0041}, {0x0000, 0x0045}, {0x00EF, 0x0046}, {0x0000, 0x0047},
	{0x0000, 0x0048}, {0x0001, 0x0049}, {0x003F, 0x004A}, {0x0000, 0x0076}, {0x0000, 0x0086},
	{0x0038, 0x0087}, {0x0002, 0x0088}, {0x0004, 0x0089}, {0x003C, 0x008B}, {0x0001, 0x008D},
	{0x0024, 0x008F}, {0x0000, 0x0090}, {0x0077, 0x0091}, {0x0076, 0x0092}, {0x0075, 0x0093},
	{0x0077, 0x0094}, {0x0029, 0x0095}, {0x000A, 0x0096}, {0x0004, 0x0097}, {0x0064, 0x0098},
	{0x0077, 0x0099}, {0x0000, 0x009A}, {0x0002, 0x009B}, {0x0010, 0x009C}, {0x0000, 0x009D},
	{0x0001, 0x003B}, {END_FLAG, END_FLAG}
};

static const T_U16 turnoff_cmdset[][2] = {
//	{0x0080, 0x0000}, {DELAY_FLAG, 20}, {0x0088, 0x0000}, {DELAY_FLAG, 30}, {0x0000, 0x001B},
//	{DELAY_FLAG,  1}, {0x0000, 0x001E},	{DELAY_FLAG,  1}, {0x0000, 0x0028},	{DELAY_FLAG,  1},
//	{0x0000, 0x0018}, {DELAY_FLAG,  1}, {0x0011, 0x0001},
//	{END_FLAG, END_FLAG}
	{0x0088, 0x0000}, {DELAY_FLAG, 20}, 
//	{0x0088, 0x0000}, {0x0011, 0x0001}, {0x0000, 0x001B}, {0x0000, 0x0018}, {0x0000, 0x003B},
	{END_FLAG, END_FLAG}
};

static const T_U16 turnon_cmdset[][2] = {
//	{DELAY_FLAG, 50}, {0x0010, 0x0001}, {0x0028, 0x0000}, 
//	{0x0001, 0x0022}, {0x0020, 0x0000}, {DELAY_FLAG, 10}, {0x0012, 0x0028}, {0x000B, 0x001B}, 
//	{0x0005, 0x0018}, {0x0001, 0x001E}, 
//	{0x0047, 0x0018}, {0x0067, 0x0018}, {0x00F7, 0x0018}, 
//	{0x0083, 0x001E}, {END_FLAG, END_FLAG}

//	{DELAY_FLAG, 50}, {0x0001, 0x0003}, {DELAY_FLAG,  1}, {0x0011, 0x0001}, {0x0001, 0x0003},
//	{0x0028, 0x0000}, {0x0001, 0x0022},	{0x0020, 0x0000}, {DELAY_FLAG, 10},	{0x0012, 0x0028},
//	{0x0000, 0x001A}, {0x0000, 0x0019}, {0x0010, 0x0021}, {0x0005, 0x0018}, {0x0001, 0x001E}, 
//	{0x0047, 0x0018}, {0x0067, 0x0018}, {0x00F7, 0x0018}, {0x0000, 0x0021},	{0x0004, 0x0019}, 
//	{0x0065, 0x001F}, {0x0063, 0x0020}, {0x0083, 0x001E}, {0x0010, 0x0001}, {0x000B, 0x001B}, 
	{0x0020, 0x0000}, //{0x0010, 0x0001}, {0x000B, 0x001B}, {0x00F7, 0x0018}, {0x0001, 0x003B},
	{END_FLAG, END_FLAG}
};

static T_VOID send_cmd(const T_U16 *pCmdSet)
{
	int i = 0;
	T_U32 regValue;

	for(i=0; AK_TRUE; i++)
	{
		if ((pCmdSet[i*2] == END_FLAG) && (pCmdSet[i*2+1] == END_FLAG))
		{
			break;
		}
		else if (pCmdSet[i*2] == DELAY_FLAG)
		{
			delay1ms(pCmdSet[i*2+1]);
		}
		else
		{
			regValue = MAIN_LCD_MPU_CMD | convert_16_to_18bit((pCmdSet[i*2+1] << 8) | pCmdSet[i*2]);
			HAL_WRITE_UINT32(LCD_MINFO_REG,regValue);
		}
	}
}

T_VOID set_disp_address_is2102b(T_U32 x1, T_U32 y1, T_U32 x2, T_U32 y2)
{
	T_U32 tmp,tmp1;
	T_eLCD_DEGREE current_lcd_degree;

	current_lcd_degree = mlcd_degree();

	//AK_DEBUG_OUTPUT("refresh:x1=%d,y1=%d,x2=%d,y2=%d",x1,y1,x2,y2);
	//adjust the x and y
	if (current_lcd_degree == LCD_90_DEGREE ||
		current_lcd_degree == LCD_270_DEGREE)
	{
		//x1<->y1,x2<->y2
		tmp = x1;
		x1 = y1;
		y1 = tmp;
		tmp = x2;
		x2 = y2;
		y2 = tmp;
	}
	//AK_DEBUG_OUTPUT("adjust:x1=%d,y1=%d,x2=%d,y2=%d",x1,y1,x2,y2);

	//set the start address
	switch(current_lcd_degree)
	{	
	case LCD_90_DEGREE:
		tmp = x1;
		HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0042 << 8 | tmp)));

		tmp = MASTER_LCD_HEIGHT - 1 - y1;
		HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0043 << 8 | ((tmp & 0x00000100) >> 8))));
		HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0044 << 8 | (tmp & 0x000000FF))));
		break;
	case LCD_180_DEGREE:
		tmp = MASTER_LCD_WIDTH - 1 - x1;
		HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0042 << 8 | tmp)));

		tmp = MASTER_LCD_HEIGHT - 1 - y1;
		HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0043 << 8 | ((tmp & 0x00000100) >> 8))));
		HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0044 << 8 | (tmp & 0x000000FF))));
		break;
	case LCD_270_DEGREE:
		tmp = MASTER_LCD_WIDTH - 1 - x1;
		HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0042 << 8 | tmp)));

		tmp = y1;
		HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0043 << 8 | ((tmp & 0x00000100) >> 8))));
		HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0044 << 8 | (tmp & 0x000000FF))));
		break;	
	case LCD_0_DEGREE:
	default:
		tmp = x1;
		HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0042 << 8 | tmp)));

		tmp = y1;
		HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0043 << 8 | ((tmp & 0x00000100) >> 8))));
		HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0044 << 8 | (tmp & 0x000000FF))));	
		break;
	}

	//set the x1,y1,x2,y2
	HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0045 << 8 | x1)));
	HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0046 << 8 | x2)));

	HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0047 << 8 | ((y1 & 0x00000100) >> 8))));
	HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0048 << 8 | (y1 & 0x000000FF))));

	HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0049 << 8 | ((y2 & 0x00000100) >> 8))));
	HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x004A << 8 | (y2 & 0x000000FF))));
}

/**
 * @brief Initialize the is2102b LCD
 * Initialize master LCD and slave LCD and then turn on them
 * @author YiRuoxiang
 * @date 2005-12-30
 * @param T_VOID
 * @return T_VOID
 */
T_VOID  lcd_is2102b_initial(T_VOID)
{
    /*--select MPU interface--*/
	HAL_WRITE_UINT32(LCD_CMD1_REG,LCD_MPU_INTERFACE | MODE_65K_16BIT);

//	send_cmd((const T_U16 *)turnon_cmdset);
	send_cmd((const T_U16 *)init_cmdset);
}

/**
 * @brief Turn on the LCD
 * @author qxj
 * @date 2005-07-18
 * @param T_eLCD lcd: selected LCD, must be LCD_M or LCD_S
 * @return T_VOID
 */
T_VOID lcd_is2102b_turn_on(T_eLCD lcd)
{
	send_cmd((const T_U16 *)turnon_cmdset);
}

/**
 * @brief Turn off the LCD
 * @author qxj
 * @date 2004-09-14
 * @param T_eLCD lcd: selected LCD, must be LCD_M or LCD_S
 * @return T_VOID
 */
T_VOID lcd_is2102b_turn_off(T_eLCD lcd)
{
    send_cmd((const T_U16 *)turnoff_cmdset);
}

/**
 * @brief Set lcd_is2102b contrast value
 * @author YiRuoxiang
 * @date 2006-01-04
 * @param T_U8 contrast: contrast value
 * @return T_VOID
 * @retval
 */
T_VOID lcd_is2102b_set_contrast(T_U8 contrast)
{
	T_U16 value;

	value = ((T_U32)LCD_CONTRAST_REG[contrast]) & 0x000000ff;
	HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x001F << 8 | value)));
}

/**
 * @brief  	rotate the picture 90 degree
 * @author	lgj
 * @date	2005-08-18
 * @param	T_VOID
 * @retval  T_VOID
 */
T_VOID lcd_is2102b_rotate(T_VOID)
{
	T_eLCD_DEGREE current_lcd_degree;

	current_lcd_degree = mlcd_degree();

	switch (current_lcd_degree)
	{
	case LCD_0_DEGREE:
        HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0001 << 8 | 0x0000)));
    	HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0005 << 8 | 0x0010)));
		g_Graph.LCDWIDTH[LCD_M] = MASTER_LCD_WIDTH;
		g_Graph.LCDHEIGHT[LCD_M] = MASTER_LCD_HEIGHT;
	    break;
	case LCD_90_DEGREE:
        HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0001 << 8 | 0x0040)));
    	HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0005 << 8 | 0x0014)));
		g_Graph.LCDWIDTH[LCD_M] = MASTER_LCD_HEIGHT;
		g_Graph.LCDHEIGHT[LCD_M] = MASTER_LCD_WIDTH;
	    break;
	case LCD_180_DEGREE:
        HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0001 << 8 | 0x00C0)));
    	HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0005 << 8 | 0x0010)));
		g_Graph.LCDWIDTH[LCD_M] = MASTER_LCD_WIDTH;
		g_Graph.LCDHEIGHT[LCD_M] = MASTER_LCD_HEIGHT;
	    break;
	case LCD_270_DEGREE:
		HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0001 << 8 | 0x0080)));
    	HAL_WRITE_UINT32(LCD_MINFO_REG,MAIN_LCD_MPU_CMD | convert_16_to_18bit((0x0005 << 8 | 0x0014)));
		g_Graph.LCDWIDTH[LCD_M] = MASTER_LCD_HEIGHT;
		g_Graph.LCDHEIGHT[LCD_M] = MASTER_LCD_WIDTH;
	    break;
	default:
		break;
	}
}
/* end of file */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一二三在线| 国产精品系列在线| 国产一区不卡在线| 亚洲激情男女视频| 久久影院视频免费| 欧美三区免费完整视频在线观看| 久久精品国产一区二区三| 亚洲欧洲美洲综合色网| 日韩欧美色电影| 欧美在线高清视频| 波多野结衣精品在线| 精品在线播放免费| 亚洲成人av一区二区三区| 欧美激情中文不卡| 欧美一级高清大全免费观看| 日本韩国欧美国产| 成av人片一区二区| 国产一区二区三区久久久 | 国产亚洲精品aa| 欧美二区三区的天堂| 91激情在线视频| www.成人网.com| 处破女av一区二区| 国产福利精品一区二区| 麻豆91免费看| 国产老肥熟一区二区三区| 免费视频最近日韩| 婷婷久久综合九色综合伊人色| 亚洲伦理在线精品| 亚洲男同1069视频| 综合久久久久久| 亚洲视频资源在线| 日韩一区日韩二区| 国产精品久久久久国产精品日日| 久久久99久久| 欧美韩国一区二区| 中文字幕精品三区| 国产精品污网站| 国产精品乱子久久久久| 中日韩av电影| 亚洲天堂精品视频| 亚洲欧美日韩一区二区三区在线观看| 中文字幕久久午夜不卡| 国产精品视频观看| 国产精品五月天| 中文字幕一区二区三区蜜月 | 国产精品久久综合| 国产精品久久久久7777按摩| 国产精品妹子av| 综合久久一区二区三区| 一区二区三区中文在线观看| 亚洲伊人伊色伊影伊综合网| 亚洲午夜精品17c| 午夜精品福利一区二区三区蜜桃| 水蜜桃久久夜色精品一区的特点| 七七婷婷婷婷精品国产| 另类中文字幕网| 国产精品一区二区果冻传媒| 波多野结衣亚洲| 欧美伊人久久大香线蕉综合69| 欧美高清dvd| 日韩精品一区二区三区视频播放 | 韩国v欧美v亚洲v日本v| 国产高清在线精品| 97精品电影院| 欧美年轻男男videosbes| 欧美一区二区三区免费大片| 2020日本不卡一区二区视频| 中文字幕一区二区三区四区不卡 | 成人性视频免费网站| 99re热这里只有精品免费视频| 欧美丝袜丝交足nylons| 日韩欧美在线观看一区二区三区| 国产清纯美女被跳蛋高潮一区二区久久w| 国产精品久久久99| 亚洲v中文字幕| 国产精品中文有码| 99精品视频在线播放观看| 7777精品伊人久久久大香线蕉经典版下载| 精品欧美一区二区三区精品久久| 国产精品国产三级国产有无不卡| 亚洲国产综合人成综合网站| 久久aⅴ国产欧美74aaa| 97精品国产露脸对白| 51精品国自产在线| 国产精品天干天干在线综合| 午夜精品久久久久久久久久久| 国产美女娇喘av呻吟久久| 色菇凉天天综合网| 久久女同精品一区二区| 亚洲一区二区三区四区五区黄| 国产在线播放一区三区四| 在线观看视频一区| 国产亚洲污的网站| 日韩av一区二区在线影视| 波多野结衣的一区二区三区| 日韩午夜中文字幕| 一区二区三区久久久| 国产一区二区三区观看| 欧美日韩成人综合在线一区二区| 欧美激情综合网| 捆绑调教美女网站视频一区| 在线观看亚洲a| 国产精品人成在线观看免费| 美国十次综合导航| 欧美日韩国产首页在线观看| 中文字幕中文字幕中文字幕亚洲无线| 日本视频一区二区| 欧美亚州韩日在线看免费版国语版| 国产婷婷一区二区| 蜜臀精品一区二区三区在线观看 | 麻豆传媒一区二区三区| gogogo免费视频观看亚洲一| 久久色中文字幕| 欧美a一区二区| 9191久久久久久久久久久| 亚洲免费色视频| 不卡的av在线| 国产日韩欧美激情| 国产美女在线观看一区| 欧美v亚洲v综合ⅴ国产v| 亚洲成人自拍偷拍| 在线中文字幕一区| 亚洲欧美激情小说另类| 成人av在线资源网| 国产欧美日韩一区二区三区在线观看| 激情综合色播激情啊| 日韩欧美亚洲国产另类| 日韩不卡在线观看日韩不卡视频| 欧美日韩一区二区三区视频| 综合激情成人伊人| 成人av免费在线播放| 国产精品视频一二| a级高清视频欧美日韩| 国产精品私人自拍| 91在线观看下载| 亚洲色图视频网站| 91视频观看视频| 亚洲另类春色校园小说| 91久久线看在观草草青青| 亚洲视频香蕉人妖| 在线观看欧美日本| 亚洲午夜私人影院| 欧美精品一卡二卡| 美女脱光内衣内裤视频久久网站 | 久久久影视传媒| 国产福利视频一区二区三区| 国产欧美日本一区二区三区| 粉嫩一区二区三区在线看| 国产精品久久午夜| 91视频在线观看免费| 亚洲精品国产一区二区精华液| 欧美在线一区二区| 日韩成人免费电影| 久久品道一品道久久精品| 成人高清视频在线观看| 亚洲精品欧美专区| 在线不卡中文字幕播放| 精品亚洲国内自在自线福利| 国产日韩视频一区二区三区| 91首页免费视频| 舔着乳尖日韩一区| 久久综合色天天久久综合图片| 国产99精品国产| 一区二区三区成人| 91精品国产黑色紧身裤美女| 国产精品一区二区免费不卡 | 亚洲免费观看高清完整版在线| 精品污污网站免费看| 激情五月婷婷综合| 国产精品久久久久久久浪潮网站 | 久久国产精品第一页| 国产无一区二区| 在线国产亚洲欧美| 激情深爱一区二区| 亚洲同性同志一二三专区| 欧美一区二区视频在线观看2022| 国产一区二区三区在线观看精品| 亚洲色图欧美在线| 日韩精品最新网址| 99久久精品国产一区二区三区 | 美国毛片一区二区| 国产精品久久久久久久久免费樱桃 | 日韩欧美激情在线| 99这里都是精品| 蜜臀a∨国产成人精品| 中文字幕在线观看一区| 91麻豆精品国产91久久久久 | 91精品在线麻豆| 成人精品一区二区三区中文字幕| 亚洲成a人v欧美综合天堂下载 | 久久亚洲一区二区三区四区| 一本一本大道香蕉久在线精品| 麻豆国产一区二区| 亚洲一区二区黄色| 国产精品免费视频网站| 欧美成人官网二区| 欧美色综合网站| av成人老司机| 国产一区二区三区免费看|