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

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

?? tft_driver.c

?? Zigbee模塊的詳細電路原理圖和C代碼.rar
?? C
字號:
//====================================================================================
//文 件 名:TFT_Driver.c
//功能描述: TFT驅動程序(底層驅動)
//維護記錄: 2007年1月17日
//====================================================================================
#include "TFT_Driver.h"

STR_TFT_SETTING TFT_Settings;

//=============================================================
//語法格式:	void TFT_SetBufAddr(unsigned short *Buff1, unsigned short *Buff2, unsigned short *Buff3)
//實現功能:	更新TFT緩沖地址
//參數:		Buff1	-	緩沖區1首地址
//				Buff2	-	緩沖區2首地址
//				Buff3	-	緩沖區3首地址
//返回值:		無
//=============================================================
void TFT_SetBufAddr(unsigned short *Buff0, unsigned short *Buff1, unsigned short *Buff2)
{
	TFT_Settings.Buf[0] = (unsigned short *)(*P_LCD_BUFFER_SA1 = (unsigned int)Buff0);
	TFT_Settings.Buf[1] = (unsigned short *)(*P_LCD_BUFFER_SA2 = (unsigned int)Buff1);
	TFT_Settings.Buf[2] = (unsigned short *)(*P_LCD_BUFFER_SA3 = (unsigned int)Buff2);
	TFT_Settings.WorkBuf = TFT_Settings.DispBuf = *P_LCD_BUFFER_SEL = 0;
}

//=============================================================
//語法格式:	void TFT_SetBufFmt(unsigned int FMT1, unsigned int FMT2)
//實現功能:	更新TFT緩沖區數據格式設置
//參數:		FMT1	-	緩沖區格式1
//				FMT2	-	緩沖區格式2
//返回值:		無
//=============================================================
void TFT_SetBufFmt(unsigned int FMT1, unsigned int FMT2)
{
	TFT_Settings.Buf_Format1 = *P_TFT_FRAME_FMT1 = FMT1;
	TFT_Settings.Buf_Format2 = *P_TFT_FRAME_FMT2 = FMT2;
}

//=============================================================
//語法格式:	unsigned short *TFT_SelDispBuf(unsigned char Buf_Cursor);
//實現功能:	選擇一個緩沖區作為顯示緩沖區
//參數:		Buf_Cursor - 作為顯示輸出的緩沖區序號(0~2)
//							 大于2的參數可以獲取當前使用的緩沖區首地址
//返回值:		作為顯示輸出的緩沖區起始地址
//=============================================================
unsigned short *TFT_SelDispBuf(unsigned char Buf_Cursor)
{
	switch(Buf_Cursor)
	{
		case 0:
			TFT_Settings.DispBuf = *P_LCD_BUFFER_SEL = 0;
			break;
		case 1:
			TFT_Settings.DispBuf = *P_LCD_BUFFER_SEL = 1;
			break;
		case 2:
			TFT_Settings.DispBuf = *P_LCD_BUFFER_SEL = 2;
			break;
		default:
			return TFT_Settings.Buf[TFT_Settings.DispBuf];
			break;		
	}
	return TFT_Settings.Buf[Buf_Cursor];
}

//=============================================================
//語法格式:	unsigned short *TFT_SelWorkBuf(unsigned char Buf_Cursor);
//實現功能:	選擇一個緩沖區作為工作緩沖區(TFT_API中的函數都是對工作緩沖區操作的)
//參數:		Buf_Cursor - 作為工作緩沖區的序號(0~2)
//							 大于2的參數可以獲取當前使用的緩沖區首地址
//返回值:		作為工作緩沖區的起始地址
//=============================================================
unsigned short *TFT_SelWorkBuf(unsigned char Buf_Cursor)
{
	switch(Buf_Cursor)
	{
		case 0:
			TFT_Settings.WorkBuf = 0;
			break;
		case 1:
			TFT_Settings.WorkBuf = 1;
			break;
		case 2:
			TFT_Settings.WorkBuf = 2;
			break;
		default:
			return TFT_Settings.Buf[TFT_Settings.WorkBuf];
			break;		
	}
	return TFT_Settings.Buf[Buf_Cursor];
}

void TFT_SetWorkBufSize(short WorkBufWidth, short WorkBufHeight)
{
	TFT_Settings.WorkBufWidth = (WorkBufWidth >= TFT_WIDTH ? WorkBufWidth : TFT_WIDTH);
	TFT_Settings.WorkBufHeight = (WorkBufHeight >= TFT_HEIGHT ? WorkBufHeight : TFT_HEIGHT);
	TFT_Settings.RowStart = *P_TFT_ROW_START = 0;
	TFT_Settings.ColStart = *P_TFT_COL_START = 0;
	*P_TFT_DUMMY_WIDTH = TFT_Settings.WorkBufWidth - TFT_WIDTH;
}

void TFT_GetWorkBufSize(short *WorkBufWidth, short *WorkBufHeight)
{
	*WorkBufWidth = TFT_Settings.WorkBufWidth;
	*WorkBufHeight = TFT_Settings.WorkBufHeight;
}

void TFT_SetDispOffset(unsigned short OffX, unsigned short OffY)
{
	if((OffX + TFT_WIDTH) > TFT_Settings.WorkBufWidth)
		OffX = TFT_Settings.WorkBufWidth - TFT_WIDTH;
	TFT_Settings.ColStart = *P_TFT_COL_START = OffX;
	TFT_Settings.RowStart = *P_TFT_ROW_START = OffY;
	*P_TFT_DUMMY_WIDTH = TFT_Settings.WorkBufWidth - OffX - TFT_WIDTH;
}

//=============================================================
//語法格式:	void TFT_InitHardware(void);
//實現功能:	初始化TFT相關硬件寄存器
//參數:		無
//返回值:		無
//=============================================================
extern void *memset(void *s, int c, unsigned int n);
void TFT_InitHardware(void)
{
	*P_BUFCTRL_CLK_CONF = 0x03;
 	*P_LCD_INTERFACE_SEL |= TFT_INTERFACE;					// 管腳復用,選擇TFT_AUO模式
	*P_LCD_CLK_CONF = C_LCD_RST_DIS | C_LCD_CLK_EN;			// LCD模式時鐘使能

	// 設置TFT-LCD數據模式
	*P_TFT_DATA_SEQ = TFT_DATA_SEQ;							// TFT-LCD輸出數據格式
	*P_TFT_DATA_FMT = TFT_DATA_FMT;							// TFT-LCD管腳輸出數據格式

	// 設置TFT-LCD的行信號
	*P_TFT_HOR_ACT = TFT_HOR_ACT;
	*P_TFT_HOR_FRONT = TFT_HOR_FRONT;
	*P_TFT_HOR_BACK = TFT_HOR_BACK;
	*P_TFT_HOR_SYNC = TFT_HOR_SYNC;
	
	// 設置TFT-LCD的場信號
	*P_TFT_VER_ACT = TFT_VER_ACT;
	*P_TFT_VER_FRONT = TFT_VER_FRONT;
	*P_TFT_VER_BACK = TFT_VER_BACK;
	*P_TFT_VER_SYNC = TFT_VER_SYNC;
	// 設置TFT-LCD顯示的起始位置
	*P_TFT_COL_WIDTH = TFT_WIDTH;

	TFT_SetWorkBufSize(TFT_WINDOW_WIDTH, TFT_WINDOW_HEIGHT);

	TFT_SetBufFmt(TFT_FRAME_FMT1, TFT_FRAME_FMT2);
	TFT_SetBufAddr((unsigned short*)TFT_BUFFER0_SA, (unsigned short*)TFT_BUFFER1_SA, (unsigned short*)TFT_BUFFER2_SA);

	memset(TFT_Settings.Buf[0], 0,
			TFT_Settings.WorkBufWidth * TFT_Settings.WorkBufHeight * 2);
	memset(TFT_Settings.Buf[1], 0,
			TFT_Settings.WorkBufWidth * TFT_Settings.WorkBufHeight * 2);
	memset(TFT_Settings.Buf[2], 0,
			TFT_Settings.WorkBufWidth * TFT_Settings.WorkBufHeight * 2);

	*P_BUFCTRL_CLK_CONF = 0x03;
	// 設置TFT-LCD的控制寄存器
	*P_TFT_INT_STATUS = ~C_TFT_INT_EN;			// 中斷不使能
	// 使能TFT模塊,圖像不放大,選擇6.75MHz時鐘
	*P_TFT_MODE_CTRL = C_TFT_CTRL_EN | TFT_CLK_SET;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品进线69影院| 精品成人在线观看| 亚洲国产欧美在线| 欧美吻胸吃奶大尺度电影| 天堂影院一区二区| 日韩一区二区三区av| 精品影院一区二区久久久| xnxx国产精品| 99久久综合色| 午夜a成v人精品| 精品久久国产字幕高潮| 丁香桃色午夜亚洲一区二区三区| 国产精品久久久久影院色老大| 成人不卡免费av| 亚洲第一在线综合网站| 日韩欧美亚洲另类制服综合在线| 国产精品一级片| 一区二区在线免费| 日韩你懂的在线播放| av资源站一区| 麻豆精品新av中文字幕| 国产精品欧美极品| 欧美精品久久久久久久久老牛影院| 久久国产精品露脸对白| 中文字幕视频一区| 9191精品国产综合久久久久久| 国产剧情在线观看一区二区| 粉嫩一区二区三区在线看| 日韩一区二区三区三四区视频在线观看 | 日韩欧美国产电影| 成人高清伦理免费影院在线观看| 亚洲午夜精品17c| 欧美精品一区二区高清在线观看| 91视频免费看| 国产一区二区三区四区五区入口 | 国产激情91久久精品导航| 又紧又大又爽精品一区二区| 精品国产一区二区三区四区四| 91在线你懂得| 国产乱人伦精品一区二区在线观看 | 国产女主播在线一区二区| 欧美日本国产一区| 91天堂素人约啪| 在线精品视频一区二区三四| 美女视频黄免费的久久| 亚洲欧美日韩一区| 精品国产成人系列| 欧美私模裸体表演在线观看| 成人app在线| 久久av资源网| 婷婷一区二区三区| 亚洲激情av在线| 国产情人综合久久777777| 欧美一级日韩一级| 欧美日韩色一区| 99国内精品久久| 成人国产视频在线观看| 极品少妇xxxx精品少妇偷拍| 日本最新不卡在线| 午夜欧美大尺度福利影院在线看| 亚洲理论在线观看| 国产精品毛片大码女人| 国产欧美一区二区三区在线看蜜臀| 日韩精品一区国产麻豆| 日韩一区二区免费电影| 在线综合+亚洲+欧美中文字幕| 亚洲国产精品99久久久久久久久| 最好看的中文字幕久久| 久久综合九色综合97婷婷女人| 欧美日韩国产一级二级| 在线观看免费亚洲| 91精品办公室少妇高潮对白| 风间由美一区二区av101| 国产福利不卡视频| 国产福利一区二区三区在线视频| 久久成人麻豆午夜电影| 久久97超碰色| 韩国精品主播一区二区在线观看| 国产呦萝稀缺另类资源| 国产真实乱子伦精品视频| 激情欧美一区二区| 国产精品一区二区x88av| 国产福利一区二区三区视频在线 | 国产成a人亚洲精品| 国产成人在线色| av午夜精品一区二区三区| 97久久久精品综合88久久| 色婷婷综合激情| 欧美肥胖老妇做爰| 欧美成人vps| 国产精品三级av在线播放| 日韩毛片高清在线播放| 亚洲综合色在线| 日本中文字幕一区二区视频| 久久精品国产一区二区三| 国产一区二区三区国产| www.在线欧美| 欧美午夜一区二区三区免费大片| 欧美精品在线一区二区| 精品国产制服丝袜高跟| 国产一区二区视频在线| 国产乱妇无码大片在线观看| 99精品久久99久久久久| 欧美日韩电影一区| 亚洲精品在线一区二区| 中文字幕+乱码+中文字幕一区| 中文字幕日韩一区| 日韩一区精品字幕| 成人永久aaa| 欧美久久久久久久久中文字幕| 日韩久久久精品| 国产精品久久久久久久蜜臀| 亚洲va欧美va国产va天堂影院| 精彩视频一区二区| 91国偷自产一区二区开放时间 | 欧美一级二级在线观看| 久久久久久久久久久久电影 | 高清国产午夜精品久久久久久| 亚洲美女偷拍久久| 日韩黄色免费电影| 成人午夜激情在线| 欧美群妇大交群中文字幕| 久久久久久久久岛国免费| 亚洲自拍与偷拍| 国产精品亚洲第一区在线暖暖韩国| 91福利精品视频| 久久久99精品久久| 午夜久久电影网| 成人av在线影院| 日韩视频免费直播| 国产精品国产三级国产普通话三级 | 99精品视频一区二区三区| 日韩免费高清av| 亚洲精品国产视频| 国产精品综合视频| 欧美一区二区久久| 亚洲一区二区三区不卡国产欧美| 国产不卡在线视频| 欧美成人bangbros| 午夜精品久久久久久久久久| 99麻豆久久久国产精品免费优播| 久久奇米777| 久久av中文字幕片| 91精品国产免费| 亚洲一区二区三区免费视频| 99re成人精品视频| 中文字幕精品一区| 国产剧情一区二区三区| 日韩免费性生活视频播放| 亚洲成人自拍网| 欧美综合一区二区| 亚洲免费视频中文字幕| 成人h动漫精品一区二区| 国产香蕉久久精品综合网| 久久精品二区亚洲w码| 日韩一区二区在线观看| 日本va欧美va瓶| 欧美一区二区三区免费观看视频| 亚洲图片欧美综合| 欧美日韩一级大片网址| 亚洲va天堂va国产va久| 欧美另类高清zo欧美| 亚洲无线码一区二区三区| 欧美日韩一区二区三区高清| 一区二区三区中文字幕| 欧美亚洲愉拍一区二区| 亚洲国产日韩一区二区| 欧美日韩在线直播| 亚洲成av人在线观看| 欧美日韩一区高清| 日韩成人av影视| 精品乱人伦一区二区三区| 久久国产麻豆精品| 久久婷婷久久一区二区三区| 亚洲国产成人va在线观看天堂| 色哟哟精品一区| 亚洲图片欧美色图| 欧美猛男gaygay网站| 日本亚洲免费观看| 精品国产一区二区三区av性色| 久久国产精品72免费观看| 精品成人在线观看| www.色精品| 亚洲国产日日夜夜| 欧美电影免费观看高清完整版在线 | 91麻豆自制传媒国产之光| 亚洲精品成人少妇| 欧美猛男男办公室激情| 久久99九九99精品| 日本一区二区视频在线| 色八戒一区二区三区| 免费精品99久久国产综合精品| 精品国产乱码久久久久久1区2区| 国产aⅴ精品一区二区三区色成熟| 亚洲免费色视频| 欧美年轻男男videosbes| 精品在线免费观看| 亚洲男人的天堂在线aⅴ视频| 欧美日韩你懂的| 国产成人综合自拍|