|
个人比较喜欢老版本uC/OS的程序风格,JB现在应该不写程序了。废话少说,进入正题!o(∩_∩)o...
每次用到液晶屏都要写一大堆繁琐的代码,烦透了!准备建立一个自己的标准LCD库。方便以后移植。于是有了提取uC/OS的底层液晶驱动的念头。
1.方便和GUI接口。
2.脱离操作系统。
3.代码效率尽量高(320*240的液晶屏举例,如果没个点能优化掉10个指令的话。那么刷新一次屏幕将节省768000个指令周期)
以下是我提取的uC/OS代码,重写了关键函数。希望对大家有所帮助。
控制器 :ILI9325
编译环境:IAR4.42
源文件 :Lcd.c Lcd.h fonts.h
功 能 :显示英文字符 画圆 画线 画矩形 填充矩形
函数列表:
/*----- High layer function -----*/
void LCD_Setup(void); /*初始化LCD*/
void LCD_SetTextColor(vu16 Color); /*设置前景色*/
void LCD_SetBackColor(vu16 Color); /*设置背景色*/
void LCD_ClearLine(u8 Line); /*清行*/
void LCD_Clear(u16 Color); /*清屏*/
void LCD_SetCursor(u8 Xpos, u16 Ypos); /*设置光标位置*/
void LCD_DrawChar(u8 Xpos, u16 Ypos, uc16 *c); /*写字符*/
void LCD_DisplayChar(u8 Line, u16 Column, u8 Ascii); /*写ascii字符*/
void LCD_DisplayStringLine(u8 Line, u8 *ptr); /*显示字符串*/
void LCD_SetDisplayWindow(u8 Xpos, u16 Ypos, u8 Width, u16 Height);/*设置窗口模式*/
void LCD_WindowModeDisable(void);/*关闭窗口模式*/
/*-------Draw function-------------*/
void LCD_DrawLine(u8 Xpos, u16 Ypos, u16 Length, u8 Direction);/*画线*/
void LCD_DrawRect(u8 Xpos, u16 Ypos, u8 Height, u16 Width);/*画圆*/
void LCD_DrawRectFill(u8 Xpos, u16 Ypos, u8 Width, u16 Height,u16 fill);/*画矩形*/
void LCD_DrawCircle(u8 Xpos, u16 Ypos, u16 Radius);/*填充矩形*/
void LCD_DrawMonoPict(uc32 *Pict);/*显示单色图片*/
void LCD_DrawBMP(u32 BmpAddress);/*显示BMP图片*/
/*----- Medium layer function -----*/
void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue);/*写控制寄存器*/
void LCD_WriteRAMWord(u16 RGB_Code);/*写GRAM*/
void LCD_PowerOn(void);/*上电周期*/
void LCD_DisplayOn(void);/*启动显示*/
void LCD_DisplayOff(void);/*关闭显示*/
/*----- Low layer function -----*/
void LCD_CtrlLinesConfig(void);/*硬件初始化*/
void LCD_DisplayString(u8 Line, u8 *ptr);/*显示字符串*/
点击此处下载 ourdev_479000.rar(文件大小:9K) (原文件名:tft_source.rar)
本贴被 418425051 编辑过,最后修改时间:2008-11-02,18:05:01. |
|