历史上的今天

今天是:2024年10月09日(星期三)

正在发生

2021年10月09日 | S3C2440裸机------LCD_LCD设置

发布者:疯狂小马 来源: eefocus关键字:LCD 手机看文章 扫描二维码
随时随地手机看文章

1.lcd_4.3.c

首先我们根据芯片手册对LCD所需要的参数赋初值。


#define LCD_FB_BASE 0x33c00000

 

lcd_params lcd_4_3_params = {

.name = "lcd_4.3"

.pins_polarity = {

.de    = NORMAL,/* normal: 高电平时可以传输数据 */

.pwren = NORMAL,    /* normal: 高电平有效 */

.vclk  = NORMAL,/* normal: 在下降沿获取数据 */

.rgb   = NORMAL,/* normal: 高电平表示1 */

.hsync = INVERT,    /* normal: 高脉冲 */

.vsync = INVERT, /* normal: 高脉冲 */

},

.time_sequence = {

/* 垂直方向 */

.tvp=10, /* vysnc脉冲宽度 */

.tvb=2,  /* 上边黑框, Vertical Back porch */

.tvf=2,  /* 下边黑框, Vertical Front porch */

 

/* 水平方向 */

.thp=41, /* hsync脉冲宽度 */

.thb=2,  /* 左边黑框, Horizontal Back porch */

.thf=2,  /* 右边黑框, Horizontal Front porch */

 

.vclk=9,  /* MHz */

},

.xres = 480,

.yres = 272,

.bpp  = 16,

.fb_base = LCD_FB_BASE,

};

 

 

void lcd_4_3_add(void)

{

register_lcd(&lcd_4_3_params);

}

 

2.lcd_controller.c

接下来我们用lcd_controller.c来管理我们前面写的s3c2440_lcd_controller.c。lcd_controller.c起到一个承上启下的作用,向下管理不同的lcd_controller,向上提供统一的接口,让别人来使用这些lcd控制器

#define LCD_CONTROLLER_NUM 10

 

static p_lcd_controller p_array_lcd_controller[LCD_CONTROLLER_NUM];

static p_lcd_controller g_p_lcd_controller_selected;

 

int register_lcd_controller(p_lcd_controller plcdcon)

{

int i;

for (i = 0; i < LCD_CONTROLLER_NUM; i++)

{

if (!p_array_lcd_controller[i])

{

p_array_lcd_controller[i] = plcdcon;

return i;

}

}

return -1;

}

 

int select_lcd_controller(char *name)

{

int i;

for (i = 0; i < LCD_CONTROLLER_NUM; i++)

{

if (p_array_lcd_controller[i] && !strcmp(p_array_lcd_controller[i]->name, name))

{

g_p_lcd_controller_selected = p_array_lcd_controller[i];

return i;

}

}

return -1;

}

 

 

/* 向上: 接收不同LCD的参数

 * 向下: 使用这些参数设置对应的LCD控制器

 */

 

int lcd_controller_init(p_lcd_params plcdparams)

{

/* 调用所选择的LCD控制器的初始化函数 */

if (g_p_lcd_controller_selected)

{

g_p_lcd_controller_selected->init(plcdparams);

return 0;

}

return -1;

}

 

void lcd_contoller_add(void)

{

s3c2440_lcd_contoller_add();

}

 

3.lcd.c

我们同样构造一个管理者用来管理lcd_4.3.c。同样有一个数组存放各类LCD的参数,下层的代码调用注册函数来设置数组,上层的代码有一个函数用来选择用4.3还是3.7寸的LCD。,

#define LCD_NUM 10

 

static p_lcd_params p_array_lcd[LCD_NUM];

static p_lcd_params g_p_lcd_selected;

 

int register_lcd(p_lcd_params plcd)

{

int i;

for (i = 0; i < LCD_NUM; i++)

{

if (!p_array_lcd[i])

{

p_array_lcd[i] = plcd;

return i;

}

}

return -1;

}

 

int select_lcd(char *name)

{

int i;

for (i = 0; i < LCD_NUM; i++)

{

if (p_array_lcd[i] && !strcmp(p_array_lcd[i]->name, name))

{

g_p_lcd_selected = p_array_lcd[i];

return i;

}

}

return -1;

}

 

int lcd_init(void)

{

/* 注册LCD */

lcd_4_3_add();

 

/* 注册LCD控制器 */

lcd_contoller_add();

/* 选择某款LCD */

select_lcd("lcd_4.3");

 

/* 选择某款LCD控制器 */

select_lcd_controller("s3c2440");

 

/* 使用LCD的参数, 初始化LCD控制器 */

lcd_controller_init(g_p_lcd_selected);

}

关键字:LCD 引用地址:S3C2440裸机------LCD_LCD设置

上一篇:S3C2440裸机------LCD_画点线圆
下一篇:S3C2440裸机------LCD_LCD控制器编程

推荐阅读

   数日前,思源电气收到集岑合伙的执行事务合伙人上海双创投资管理有限公司的函告,集岑合伙与上海武岳峰集成电路股权投资合伙企业(有限合伙)等签署了《上海承裕资产管理合伙企业(有限合伙)投资框架协议》,计划收购持有北京矽成41.65%股权的上海承裕资产管理合伙企业(有限合伙)(以下简称“承裕合伙”)全部份额。这意味着自武岳峰入股思源电气...
据韩媒《朝鲜日报》报导,日本第2大电信KDDI近期将三星电子、爱立信、诺基亚选为5G设备供货商,其中,三星电子首度打入日本市场,预期至2024年,三星电子将提供2.4万亿韩元规模的5G设备。KDDI的5G投资规模为5.2万韩元,约有一半用于采购三星电子设备,在KDDI的53626个5G基站中,三星电子的设备将安装在首都东京等地区。自2015年开始,三星电子与KDDI携手开...
无线蓝牙音箱已成为智慧家居领域里非常热门的板块,有别于传统音箱产品,蓝牙音箱体积占优,便于移动,更符合当下年轻人的审美和家居设计理念。随着AI语音助手的加入,不少终端厂商入局推出产品,打造自己的智慧家居生态。其中,华为推出定位于高端的蓝牙音箱——SOUND X。其最大特色便是与全球TOP3专业音箱品牌帝瓦雷合作打造,除了配备帝瓦雷60W双低音...
今年国庆期间,央视报道了一位新能源汽车车主从深圳返回湖南老家的心路历程,而这篇报道也将当前势头正猛的电动车推上了风口浪尖。 根据这位车主的描述,其在出发前查了一下导航,发现国庆期间高速公路没有拥堵。因此才来了一场说走就走的旅行。但不曾想,一路畅通的他,在耒阳服务区的时候,却遇到了充电排队的尴尬。在他排队的4个小时里,这位车主连厕所...

史海拾趣

问答坊 | AI 解惑

2007全国大学生电子竞赛

2007全国大学生电子竞赛快到了   对于题目方面 大家有什么想法 专科组电源类题目有哪些类型啊? 有想法的欢迎讨论!…

查看全部问答∨

开始→运行→命令 集锦

本帖最后由 jameswangsynnex 于 2015-3-3 20:02 编辑 开始→运行→命令 集锦 winver---------检查Windows版本 wmimgmt.msc----打开windows管理体系结构(WMI) wupdmgr--------windows更新程序 wscript--------windows脚本宿主设置 write-- ...…

查看全部问答∨

相同IO电平的两个芯片间数据线 相连 需要加电阻吗?

本信息来自合作QQ群:电子工程师技术交流(12425841) 群主在坛子ID:Kata 如题,向大家请教…

查看全部问答∨

怎么判断com口通讯的起始位??

比如仪表说明书上说起始位是(02),那么怎么判断2就是起始位呢??如果中间也有数据2呢,比如发送的数据是:222222222…

查看全部问答∨

拜托高手急求 频率提取(FFT)的matable实现 程序 图形 结果

  小弟近日有个实验课题,弄了好久没弄明白对于matable和数字信号处理小弟是纯白菜~  这东西对我还很重要 希望高手能帮帮忙!!! 在这里万分感谢   1.初始信号为两个正弦波的叠加,频率分别为 f1=100HZ、f2=300HZ ...…

查看全部问答∨

对地址文件,才能到单片机上运行,请问连接定位器怎么开发?可以说说思路吗?

对地址文件,才能到单片机上运行,请问连接定位器怎么开发?可以说说思路吗?…

查看全部问答∨

DIY PIC编程器全部资料!~

全部资料,包括原理图,PCB还有HEX文件和软件!~   这个不要金币,应该没有******会觉得贵了吧!~…

查看全部问答∨

555时基电路基本工作模式

  555时基电路内部及引脚图(与6脚连接的电压比较器输出接RS触发器R端,与2脚连接的电压比较器输出接S端,触发器的Q端接3脚): 各脚功能:   ①接地;②触发;③输出;④复位;⑤控制;⑥阈值;⑦放电;⑧正电源。   由于内 ...…

查看全部问答∨

请问zigbee在如化工、钢铁等有大型功率设备使用的环境中使用能正常工作吗

请问zigbee在如化工、钢铁等有大型功率设备使用的环境中使用能正常工作吗…

查看全部问答∨

求助

上图中的Address指的是什么? 要怎么查看ADC12memory0内的内容?…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved