免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
ucgui 3.90在ARM7+S6DO129上裸奔成功!(
ucgui 3.90在ARM7+S6DO129上裸奔成功!(木瓜) [轉(zhuǎn)貼 2007-06-27 11:05:53 ] 發(fā)表者: cbqcgq
 
 
在移植前, 仔細(xì)閱讀UC/GUI 3.90的用戶手冊(cè)中關(guān)于顯示驅(qū)動(dòng)與UC/GUI底層配置信息. 在UC/GUI用戶手冊(cè)中, UC/GUI按接口連接類型分成了幾大類, 分別為完全總線型, 簡(jiǎn)單總線型, 4腳SPI, 3腳SPI, IIC型. 從手冊(cè)中得知, 本電路中TFT4267與ARM的連接方式屬于簡(jiǎn)單總線型.
移植工作主要是修改LCDConf.h和LCD驅(qū)動(dòng)文件的編寫, UC/GUI也提供了一些芯片的驅(qū)動(dòng)文件, 可以從中選擇一個(gè)接口連接類型相同的芯片驅(qū)動(dòng)文件來(lái)修改. 本移植使用LCDSLin.c驅(qū)動(dòng)文件作為參照.
LCDConf.h文件的修改
LCD的大小、顏色,對(duì)應(yīng)的LCD控制器以及與硬件連接有關(guān)的LCD讀寫函數(shù)在該文件中定義, 按照UC/GUI 的規(guī)定,底層的讀寫LCD函數(shù)包括LCD_WRITE_A1()(即寫LCD命令)、LCD_WRITE_A0()(寫LCD數(shù)據(jù))、 LCD_READ_A0()(讀LCD狀態(tài))、LCD_READ_A1()(讀LCD數(shù)據(jù)),以及LCD初始化函數(shù) LCD_CONTROLLER_INIT(), 這些函數(shù)的實(shí)現(xiàn)與底層硬件有關(guān),必須根據(jù)硬件連接的具體情況編寫這些函數(shù)。其中LCD的四個(gè)讀寫函數(shù)不是都要編寫的, 通常根據(jù)情況三個(gè)就可以了, LCD_READ_A0讀狀態(tài)函數(shù)在LCD_WAIT()中使用, 如果LCD寫數(shù)據(jù)不需要等待, 該函數(shù)可以定義為空操作. LCD_READ_A1讀數(shù)據(jù)函數(shù)在獲取像素點(diǎn)顏色值_GetPixel()中時(shí)調(diào)用, 如果UC/GUI的顯示緩存選項(xiàng)打開(kāi), 此函數(shù)也可定義為空操作. LCD_CONTROLLER_INIT()宏在LCD_L0_Init()函數(shù)中調(diào)用, 以初始化LCD, 此宏也非必需, 如果沒(méi)有定義該宏, 必須提供一個(gè)LCD初始化函數(shù)給LCD_L0_Init()函數(shù)調(diào)用.
本文具體實(shí)現(xiàn)如下:
#define S6D0129_CMD        (*((volatile unsigned short *) 0x83200000))
#define S6D0129_DAT        (*((volatile unsigned short *) 0x83200002))
#define LCD_WRITE_A1(dat) LCD_Write01(dat)   //write command
#define LCD_WRITE_A0(dat) LCD_Write00(dat)   //write data
#define LCD_READ_A1()      LCD_Read01()    //read data

void LCD_Write00(unsigned short dat)
{
     S6D0129_DAT = dat;
}
void LCD_Write01(unsigned short dat)
{
     S6D0129_CMD = dat;
}
unsigned short LCD_Read01(void)
{
   unsigned short r;

   r= S6D0129_DAT;
   return(r);
}

驅(qū)動(dòng)文件的編寫
下表中的函數(shù)為UC/GUI上層各模塊調(diào)用硬件功能的接口函數(shù), 而它們又調(diào)用用戶編寫的幾個(gè)基本的函數(shù)如畫點(diǎn), 獲取單個(gè)像素的顏色值等, 因此最基本的移植只需向UC/GUI提供畫點(diǎn)函數(shù)_SetPixel()和獲取像素信息_GetPixel()函數(shù). 下列函數(shù)中關(guān)于像素點(diǎn)位置坐標(biāo)都為int型, 須注意與這些函數(shù)傳遞參數(shù)時(shí)的數(shù)據(jù)類型, 及發(fā)生類型傳換時(shí)編譯器的行為.
表1 硬件接口函數(shù)的名稱和功能

函數(shù)名稱    功     能      
LCD_L0_InIt()    顯示初始化      
LCD_L0_ReInIt()    重新初始化而不擦除顯示內(nèi)容      
LCD_L0_OFF    關(guān)顯示      
LCD_L0_ON    開(kāi)顯示      
LCD_L0_DrawBitmap()    畫圖      
LCD_L0_DrawPixel()    以指定顏色畫點(diǎn)      
LCD_L0_DrwaVline()    畫水平線      
LCD_L0_DrwaVline()    畫垂直線      
LCD_L0_FillRect()    填充一矩形      
LCD_L0_XorPixel()    翻轉(zhuǎn)指定點(diǎn)顏色   
根據(jù)不同的硬件特性, 可以對(duì)上表中一些函數(shù)實(shí)現(xiàn)進(jìn)行優(yōu)化, 比如UC/GUI提供的LCDSLin.c文件, 其中LCD_L0_DrawBitmap函數(shù)調(diào)用了一個(gè)DrawBitLine1BPP()畫1BPP位圖的函數(shù), 驅(qū)動(dòng)必須向DrawBitLine1BPP()提供XY20FF位置轉(zhuǎn)換函數(shù)及LCD_WRITE, XY20FF的像素坐標(biāo)(x,y)轉(zhuǎn)換為顯示緩沖的偏移量, LCD_WRITE根據(jù)偏移量進(jìn)行畫點(diǎn)的函數(shù).
移植工作最基本的工作實(shí)現(xiàn)_SetPixel()和_GetPixel()函數(shù)兩個(gè)函數(shù)就可以, 優(yōu)化可以慢慢熟悉后再進(jìn)行.
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ucgui
ucGUI基于samsung 44B0的移植小結(jié)
如何讓ucgui支持24位色(24bpp)
嵌入式圖形用戶界面uc/gui在nios II上的移植
GUI的種類及uC/GUI的架構(gòu)
stm32 UCGUI 完美移植-Changing's Blog
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服