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

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

?? cstn_s1d15g24.c

?? ARMSTM32 lcd驅動程序集錦
?? C
?? 第 1 頁 / 共 2 頁
字號:
	lcd_info_ptr->r_bitmask			= 0xf800;
	lcd_info_ptr->g_bitmask			= 0x07e0;
	lcd_info_ptr->b_bitmask			= 0x001f;
	lcd_info_ptr->bits_per_pixel	= 16;
	lcd_info_ptr->contrast_min		= 0x00;
	lcd_info_ptr->contrast_max   	= 63;
	lcd_info_ptr->contrast_defaut	= 0x0A;
	
	lcd_info_ptr->lcd_width		= S1D15G24_WIDTH;
	lcd_info_ptr->lcd_height	= S1D15G24_HEIGHT;
	lcd_info_ptr->lcdbuff_ptr	= (void *)LCD_GetSubLCDBuffer();
		
	return ERR_LCD_NONE;
}


LOCAL ERR_LCD_E S1D15G24_Init(void)
{
#ifndef NO_SUB_LCD 
   	S1D15G24_Reset();

	S1D15G24_Clear( 0xf25f );
#endif	
	return ERR_LCD_NONE;
}

/*****************************************************************************/
//  Description:    Set the brightness of LCD.
//	Global resource dependence: 
//  Author:         Jim.zhang
//	Note:
/*****************************************************************************/
LOCAL ERR_LCD_E   S1D15G24_SetBrightness(
	uint16 brightness	//birghtness to set
	)
{
	return ERR_LCD_FUNC_NOT_SUPPORT;
}

static LCD_SPEC_T g_S1D15G24_spec =
{
	0,		//uint8	rgb_sequence; 		/*rgb sequence*/
										/*0: R-G-B, 1: B-G-R*/
	10,		//uint8	min_cycle_read;		/*read cycle:  ns*/
	50,		//uint8	min_cycle_write;	/*write cycle: ns*/
	0,		//uint8	cyclenum_sendaddr;	/*operation cycle to send address*/
										/* 0: once, 1:twice*/
	0,		//uint8	cyclenum_senddata;	/*operation cycle to send data */
										/* 0; once, 1:twice*/
	1,		//uint8	cmd_num_setupwin;	/*command number to settint up widnow space*/
										/*0: 4 commands for setting up window space: x-start, x-end, y-start, y-end*/
										/*1: 2 commands for setting up window space: x-address, y-address*/
										/*2: 1 commanns for setting up window space window address*/
										/*3: no commands for setting up window space*/
	1,		//uint8	method_send_cmdaddr;/*how to send command & address*/
										/*0: sending together, 1:sending separately*/
	1,		//uint8	ads_is_high;		/*status of ADS when sending parameter*/
										/*0: low, 1: high*/
	0,		//uint8	sequence_cmdaddr;	/*the sequence of command & address, if not send command & address together as 16 bits*/
										/*0: write 2 window area on a 16bit bus, Hitachi*/
										/*1, write 1 sindow area with one command, Casio*/
										/*2, write 1 command and 2 parameters separately, Samsung*/
										/*3, reserved*/
										/*4, write 1 command, 2 parameters for page, 4 parameters for column, Epson*/
										/*5, write 1 command, 4 parameters for page, 2 parameters for column*/
										/*6, write 1 command, write 4 parameters for each page/column*/
	4,		//uint8	cyclenum_setupwin;	/*operation cycle to set up window*/
	1,		//uint8	method_gram_access;	/*select method to begin actul data read/write address for selected window area in GRAM*/
										/*0: without any assigning x/y address, use initial start address of window*/
										/*1: assign 1 x/y set command and parameter onto 16bit bus at onece*/
										/*2: use separate for X and Y, with upper byte consists of command and lower byte for parameter*/
										/*3, 1 command for selecting X/Y adn 2 parameters, us command and parameter separately*/
										/*4, set different command for x and y, and command and parameter differs*/
	1,		//uint8	sequence_gram_access;/*read/write command and sequence for GRAM*/
										/*0: perform read/write without seperate read/write command but by strobe 'high' ADS(RS)pin, samsung*/
										/*1: data cycle comes right afer read/write command, Toshiba/Matsushita/Hitachi/NEC*/
										/*2: after read/write command follows start address parameter for X and Y and follows data cycle, Casio*/
										/*3: similiar to 2 but sends X and Y parameters together on 16 bit BUS*/
	0,		//uint8	order_xy;			/*order of x and y address, I think, this field is active when sequence_gram_access = 2*/
										/*0: X first*/
										/*1: Y first*/
	1,		//uint8	is_dummy_read;		/*deciding first read data when reading GRAM*/
										/*0: acknowledge first data as valid data*/
										/*1: acknowledge first data as dummy data*/
	3,		//uint8	cyclenum_read;		/*total cycle numbers needed to access GRAM read/write*/
	0x16,	//uint8	win_setstartx_cmd;	/*window x start address set command*/
	0x00,	//uint8	win_setendx_cmd;	/*window x end address set command*/
	0x17,	//uint8	win_setstarty_cmd;	/*window y start address set command*/
	0x00,	//uint8	win_setendy_cmd;	/*window y end address set command*/
	0x21,	//uint8	gram_setx_cmd;		/*gram x address set command*/
	0x00,	//uint8	gram_sety_cmd;		/*gram y address set command*/
	0x22,	//uint8	gram_read_cmd;		/*gram read command*/
	0x22,	//uint8	gram_write_cmd;		/*gram write command*/
	//@zhemin.lin, add 1 line, CR9590
	0x00,	//uint8	line_offset;		/*line offset for display on lcd*/
	0x00	//uint8 colum_offset        /*columoffset for display on lcd*/
};


/******************************************************************************/
//  Description:    get the important parameter for digital camera
//	Global resource dependence: 
//  Author:         Zhemin.lin
//	Note:           
/******************************************************************************/
LOCAL ERR_LCD_E  S1D15G24_GetMainLcdSpec(
	LCD_SPEC_T *spec_ptr 	//spec struct pointer
	)
{
	if (spec_ptr == PNULL)
	{
		return 1;
	}
	
	memcpy(spec_ptr, &g_S1D15G24_spec, sizeof(LCD_SPEC_T));
	
	return ERR_LCD_NONE;
}
LOCAL ERR_LCD_E S1D15G24_InvalidateRectImage(
	uint16 left, 	//the left value of the rectangel
	uint16 top, 	//top of the rectangle
	uint16 right, 	//right of the rectangle
	uint16 bottom,	//bottom of the rectangle
	uint16 *lcd_buf,
	uint8 is_invert
	)
{
	return ERR_LCD_NONE;
}

LOCAL ERR_LCD_E S1D15G24_InvalidateRect(
	uint16 left, 	//the left value of the rectangel
	uint16 top, 	//top of the rectangle
	uint16 right, 	//right of the rectangle
	uint16 bottom	//bottom of the rectangle
	)
{
	uint32 i, j;
	uint32 dummy_before, dummy_after;
	uint32 row, column;
	uint16 *buf_ptr = (uint16 *)LCD_GetSubLCDBuffer();
	uint16	color = 0x00;
	

  	left 	= (left >= S1D15G24_WIDTH)    ? S1D15G24_WIDTH-1 : left;
	right 	= (right >= S1D15G24_WIDTH)   ? S1D15G24_WIDTH-1 : right;
	top 	= (top >= S1D15G24_HEIGHT)    ? S1D15G24_HEIGHT-1 : top;
	bottom 	= (bottom >= S1D15G24_HEIGHT) ? S1D15G24_HEIGHT-1 : bottom;

	if ( ( right < left ) || ( bottom < top ) )
	{
		//SCI_TRACE_LOW(" HD66773_invalidate_rect wrong: right > left or bottom > top");
		return ERR_LCD_PARAMETER_WRONG;
	}
 

	S1D15G24_Command(0x2A);			//coladd : 0x02~0x31
	S1D15G24_Data(left);	
	S1D15G24_Data(right);	

	S1D15G24_Command(0x2B);			//pagadd : 0x00~0x3f
	S1D15G24_Data(top);	
	S1D15G24_Data(bottom);	
 	 	
//	SCI_TRACE_LOW("#####S1D15G24_InvalidateRec(%d,%d,%d,%d)", left,top,right,bottom);
	
	// In High Speed RAM Write Mode. Maybe some dummy data are insterted.
//	dummy_before =  left % 4;		// Inserted numbers befor every arrow.
//	dummy_after =  3 - (right % 4);	// Inserted numbers after every arrow.
	
	

//command of write display data to sub lcd
	S1D15G24_Command(0x2c);	
	
	for (j = top; j <= bottom; j++)
	
	{	
			
		
		for (i = left; i <= right; i++)	// real write 
		{
			color = *(buf_ptr + j * S1D15G24_WIDTH + i);
			//S1D15G24_Data(color);
			//SCI_TRACE_LOW("#####S1D15G24_InvalidateRec color = %x", color);
			
			 S1D15G24_Data((uint8)(( color & 0xFF00) >> 8 ));	
			 S1D15G24_Data( (uint8)(color & 0x00FF));	
			 
			 
			//color = ( (*(buf_ptr + j * S1D15G24_WIDTH + i)) && 0xFF00 ) >> 16;
			//S1D15G24_Data(color);
	//		S1D15G24_Data(PIC1[ j*S1D15G24_WIDTH + i]);
			//S1D15G24_Data(PIC1[ j*S1D15G24_WIDTH + 2*i+1]);			
			
				
		}
	
	}	
	
	return ERR_LCD_NONE;
}


 LOCAL LCD_OPERATIONS_T S1D15G24_operations = 
{
	S1D15G24_Init,
	S1D15G24_EnterSleep,
	S1D15G24_SetContrast,
	S1D15G24_SetBrightness,
	S1D15G24_SetDisplayWindow,
	S1D15G24_GetInfo,
	S1D15G24_InvalidateRect,
	S1D15G24_InvalidateRectImage,
	S1D15G24_Invalidate,
	S1D15G24_Clear,
	S1D15G24_Close,
	S1D15G24_GetMainLcdSpec
};

/******************************************************************************/
//  Description:  return the HD66773 lcd driver funtion pointer
//	Global resource dependence: 
//  Author:         Jim.zhang
//	Note:
/******************************************************************************/
PUBLIC LCD_OPERATIONS_T* S1D15G24_GetOperations()
{
	return &S1D15G24_operations;
}

PUBLIC BOOLEAN S1D15G24_Probe(void)
{
	return SCI_FALSE;	
}


/**---------------------------------------------------------------------------*
 **                         Compiler Flag                                     *
 **---------------------------------------------------------------------------*/
#ifdef   __cplusplus
    }
#endif 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产v综合v亚洲欧| 91蝌蚪porny九色| 欧美在线观看禁18| 亚洲欧美激情小说另类| 国产精品久久久久久亚洲伦 | 国产欧美日韩三区| 亚洲欧美激情一区二区| 久热成人在线视频| 91免费看`日韩一区二区| 欧美大度的电影原声| 精品国产乱码久久| 国产精品久久久久久久久图文区 | 欧美影院一区二区| 欧美成人bangbros| 亚洲一区二区中文在线| 国产精品一区不卡| 91麻豆精品国产91久久久久| 国产精品久久久爽爽爽麻豆色哟哟 | 欧美极品美女视频| 日韩av电影免费观看高清完整版在线观看| 国产在线播放一区| 日韩三区在线观看| 三级欧美在线一区| 色婷婷综合视频在线观看| 国产精品天干天干在观线| 激情五月婷婷综合| 日韩欧美一区电影| 美女任你摸久久| 欧美一级片在线看| 免费在线成人网| 欧美一级视频精品观看| 日本不卡一二三区黄网| 欧美自拍偷拍一区| 午夜久久福利影院| 6080亚洲精品一区二区| 日本成人在线不卡视频| 欧美一区二区久久久| 美女视频黄久久| 国产欧美日韩激情| 国产成人自拍网| 国产亚洲婷婷免费| 成人av在线影院| 亚洲午夜久久久久久久久电影院 | 久久99国产精品免费网站| 日韩一区有码在线| 成人精品鲁一区一区二区| 亚洲另类春色校园小说| 91麻豆精品91久久久久同性| 极品尤物av久久免费看| 国产精品欧美综合在线| 欧美伊人久久大香线蕉综合69| 日韩激情视频在线观看| 久久精品免视看| 91黄视频在线| 国产呦萝稀缺另类资源| 欧美极品美女视频| 日韩精品资源二区在线| 91视频免费播放| 久久成人免费网| 视频一区欧美精品| 亚洲欧洲中文日韩久久av乱码| 欧美一级搡bbbb搡bbbb| 一本色道久久综合亚洲aⅴ蜜桃| 三级久久三级久久| 亚洲欧美乱综合| 中文字幕一区在线| 中文字幕va一区二区三区| 欧美电影免费观看高清完整版在线观看 | 国产一区视频导航| 青青青爽久久午夜综合久久午夜| 一区二区三区在线不卡| 中文字幕字幕中文在线中不卡视频| 日韩色在线观看| 欧美va在线播放| 欧美大胆一级视频| 欧美大片一区二区| 精品国产sm最大网站| 久久综合色婷婷| 久久这里只有精品6| 精品成人一区二区三区四区| 亚洲图片你懂的| 亚洲美女在线一区| 亚洲综合色噜噜狠狠| 一区二区三区蜜桃网| 亚洲电影在线播放| 免费av网站大全久久| 久久精品国产999大香线蕉| 国产麻豆成人精品| 97成人超碰视| 欧美艳星brazzers| 精品日韩成人av| 国产精品入口麻豆九色| 亚洲精品乱码久久久久久黑人| 亚洲一区二区三区四区在线| 免费人成网站在线观看欧美高清| 免费在线观看精品| 色婷婷综合在线| 久久久精品人体av艺术| 亚洲黄色尤物视频| 精品午夜一区二区三区在线观看| 高清国产一区二区| 欧美日韩精品福利| 日韩理论片一区二区| 九九九精品视频| 欧美日韩一区三区四区| 国产色产综合产在线视频| 亚洲一区二区三区不卡国产欧美| 国产在线播放一区二区三区| ww亚洲ww在线观看国产| 亚洲天堂免费看| 国产美女精品人人做人人爽| 91精品国产一区二区三区蜜臀 | youjizz国产精品| 日韩欧美中文字幕公布| 一区二区久久久久| www.成人在线| 亚洲天堂免费在线观看视频| 成人性生交大片免费看视频在线| 欧美不卡一区二区三区四区| 免费看日韩精品| 久久蜜桃av一区二区天堂| 色婷婷狠狠综合| 欧美性生活久久| 国产精品久久久久久久久免费樱桃| 奇米色一区二区| 欧美亚洲国产一区在线观看网站| 国产精品人成在线观看免费 | 91在线观看污| 国产精品国产三级国产普通话蜜臀| 韩国欧美一区二区| 亚洲欧美激情视频在线观看一区二区三区 | 国产综合久久久久久久久久久久 | 一区二区三区不卡在线观看 | 亚洲色图.com| 91国偷自产一区二区开放时间| 亚洲免费三区一区二区| 91福利视频在线| 日本不卡在线视频| 欧美激情一区二区| 99re成人精品视频| 亚洲一区二区三区四区在线| 精品国产91洋老外米糕| 国产成人精品免费看| 亚洲在线免费播放| 欧美精品一区二区三区视频| 国产电影一区二区三区| 丝袜诱惑制服诱惑色一区在线观看| 欧美电影免费观看完整版| 国产激情一区二区三区| 韩国三级电影一区二区| 亚洲天堂2014| 久久综合视频网| 日韩一区二区麻豆国产| 色综合欧美在线视频区| 老司机午夜精品| 午夜精品久久久久久久99水蜜桃 | 亚洲超碰97人人做人人爱| 久久久蜜臀国产一区二区| 欧美精品色综合| 99久久er热在这里只有精品66| 免费高清视频精品| 日本午夜一区二区| 亚洲福利一二三区| 一区二区三区在线免费播放| 中文字幕第一区二区| 精品国产一区二区三区久久久蜜月 | 一区二区三区在线免费视频| 国产亚洲一区字幕| 2023国产一二三区日本精品2022| 欧美性猛交xxxx黑人交| 91美女蜜桃在线| 99国内精品久久| 成人免费视频视频| 国产东北露脸精品视频| 国产91精品久久久久久久网曝门 | 欧美日韩成人综合| 欧美视频在线观看一区二区| 色婷婷精品久久二区二区蜜臀av | 亚洲精品一卡二卡| 亚洲va国产va欧美va观看| 日本欧美一区二区| 国产一区不卡在线| eeuss鲁片一区二区三区| 精品综合免费视频观看| 成人v精品蜜桃久久一区| 91精品1区2区| 2022国产精品视频| 亚洲午夜激情网页| 日韩影视精彩在线| av电影天堂一区二区在线| 精品婷婷伊人一区三区三| 欧美精品免费视频| 亚洲丝袜精品丝袜在线| 亚洲成人在线观看视频| 成熟亚洲日本毛茸茸凸凹| 欧美日韩在线精品一区二区三区激情 | 久久久久久久久伊人| 亚洲gay无套男同| 91免费国产视频网站| 日韩精品一区二区在线|