精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
ucgui 3.90在ARM7+S6DO129上裸奔成功!(
ucgui 3.90在ARM7+S6DO129上裸奔成功!(木瓜) [轉貼 2007-06-27 11:05:53 ] 發表者: cbqcgq
 
 
在移植前, 仔細閱讀UC/GUI 3.90的用戶手冊中關于顯示驅動與UC/GUI底層配置信息. 在UC/GUI用戶手冊中, UC/GUI按接口連接類型分成了幾大類, 分別為完全總線型, 簡單總線型, 4腳SPI, 3腳SPI, IIC型. 從手冊中得知, 本電路中TFT4267與ARM的連接方式屬于簡單總線型.
移植工作主要是修改LCDConf.h和LCD驅動文件的編寫, UC/GUI也提供了一些芯片的驅動文件, 可以從中選擇一個接口連接類型相同的芯片驅動文件來修改. 本移植使用LCDSLin.c驅動文件作為參照.
LCDConf.h文件的修改
LCD的大小、顏色,對應的LCD控制器以及與硬件連接有關的LCD讀寫函數在該文件中定義, 按照UC/GUI 的規定,底層的讀寫LCD函數包括LCD_WRITE_A1()(即寫LCD命令)、LCD_WRITE_A0()(寫LCD數據)、 LCD_READ_A0()(讀LCD狀態)、LCD_READ_A1()(讀LCD數據),以及LCD初始化函數 LCD_CONTROLLER_INIT(), 這些函數的實現與底層硬件有關,必須根據硬件連接的具體情況編寫這些函數。其中LCD的四個讀寫函數不是都要編寫的, 通常根據情況三個就可以了, LCD_READ_A0讀狀態函數在LCD_WAIT()中使用, 如果LCD寫數據不需要等待, 該函數可以定義為空操作. LCD_READ_A1讀數據函數在獲取像素點顏色值_GetPixel()中時調用, 如果UC/GUI的顯示緩存選項打開, 此函數也可定義為空操作. LCD_CONTROLLER_INIT()宏在LCD_L0_Init()函數中調用, 以初始化LCD, 此宏也非必需, 如果沒有定義該宏, 必須提供一個LCD初始化函數給LCD_L0_Init()函數調用.
本文具體實現如下:
#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);
}

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

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

聯系客服

主站蜘蛛池模板: 高要市| 巴南区| 吕梁市| 苏尼特右旗| 金溪县| 眉山市| 新平| 黎平县| 唐山市| 贵定县| 施甸县| 四子王旗| 兴安县| 旬邑县| 紫云| 桐乡市| 焦作市| 泸定县| 芷江| 林州市| 夏津县| 泸溪县| 广汉市| 德清县| 贺兰县| 竹北市| 安庆市| 璧山县| 永和县| 富川| 渭源县| 巴南区| 阿图什市| 灌云县| 新密市| 定兴县| 奉贤区| 柏乡县| 利川市| 新沂市| 石棉县|