一、裸机修改

  之前测试用的屏幕是480*272的分辨率,现在要换成800*480的屏,因此要对软件代码进行修改。

  对于裸机驱动而言,主要有两个点需要注意,一个是屏幕分辨率变了,因此初始化的时候与屏幕分辨率有关的寄存器需要改。但是改了分辨率之后显示出来的图像能明显看到闪烁,这是因为软件设置LCD的时钟来自HCLK,HCLK的频率是133MHz,在软件中又设置了VIDCON0寄存器的CLKVAL_F域的值,如下图:

  在480*272的屏的软件中将该域的值设置为了14,如下图:

  因此LCD的时钟频率为133/15=8.87MHz,8870000/480/272得到约每秒67帧(当然实际上把消影信号去掉后会更少一些),这个时候显示屏是不闪烁的,如果换成了800*480的屏却不改时钟频率的话,得到8870000/800/480约23帧,算上消影的话得到的帧率肯定达不到23帧,因此肉眼能明显看到屏幕闪烁。具体VIDCON0寄存器的CLKVAL_F域该设置为多少与使用的显示屏有关,我将该域设置为5,则刷新率约57Hz,算上消影的话真实刷新率会低一些,但是肉眼肯定是分辨不出来的。

二、内核修改

  在内核代码中输入make menuconfig,在Device Drivers->Graphics supports->Support for frame buffer devices,这里面有对显示屏的设置,比如Select LCD Type可以选择屏幕分辨率,Select BPP可以选择每个像素包含的位数。选择好之后保存退出。make编译内核,编译完之后再arch/arm/boot目录下会出现zImage就是我们要的内核。

  内核下载参考前章,但我在测试的时候,修改了这些之后屏幕显示有一个问题,就是显示出来的东西和显示屏上的实际坐标并没有对准,显示出来的图像往屏幕右下方移动了。

  我这边是由于消影导致的,需要修改内核源码,drivers/video/samsung/s3cfb_UT_LCD7A.c,如下图几个消影信号的值需要修改:

  我的图像往右下方移了,因此无论是行消影还是场消影都应该调小,具体要设置到多少是能算出来的,但是我不想算了就直接试出来的。我的方法是编写一个测试程序,在屏幕的最边缘绘制一个矩形,当调整程序到能够看见一个完整的矩形的时候就OK了。

十九、更改LCD显示屏的更多相关文章

  1. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】原创教程连载导读【连载完成,共二十九章】

    前言: 无数昼夜的来回轮替以后,这本<驱动篇I>终于编辑完毕了,笔者真的感动到连鼻涕也流下来.所谓驱动就是认识硬件,还有前期建模.虽然<驱动篇I>的硬件都是我们熟悉的老友记,例 ...

  2. NeHe OpenGL教程 第十九课:粒子系统

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  3. Gradle 1.12翻译——第十九章. Gradle 守护进程

    有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...

  4. Android进阶(十九)AndroidAPP开发问题汇总(三)

    Android进阶(十九)AndroidAPP开发问题汇总(三) Java解析XML的几种方式: http://inotgaoshou.iteye.com/blog/1012188 从线程返回数据的两 ...

  5. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十九:SDRAM模块② — 多字读写

    实验十九:SDRAM模块② — 多字读写 表示19.1 Mode Register的内容. Mode Register A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A ...

  6. centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课

    centos  MySQL主从配置 ntsysv   chkconfig  setup命令  配置MySQL 主从 子shell  MySQL备份  kill命令  pid文件  discuz!论坛数 ...

  7. centos LAMP第一部分-环境搭建 Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课

    centos LAMP第一部分-环境搭建  Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课 打命令之后可以输入: e ...

  8. Flask 教程 第十九章:Docker容器上的部署

    本文翻译自The Flask Mega-Tutorial Part XIX: Deployment on Docker Containers 这是Flask Mega-Tutorial系列的第十九部分 ...

  9. 无废话ExtJs 入门教程十九[API的使用]

    无废话ExtJs 入门教程十九[API的使用] extjs技术交流,欢迎加群(201926085) 首先解释什么是 API 来自百度百科的官方解释:API(Application Programmin ...

随机推荐

  1. <未解决的问题>crontab 定时弹框任务

    问题:crontab写别的定时脚本就可以执行(比如说每隔一分钟就创建一个txt文件),但是写shell就不知道为什么,反弹不了 但是开启Linux终端窗口单独执行bash shell时候,(不通过re ...

  2. 持久层之 MyBatis: 第一篇:快速入门

    MyBatis入门到精通 JDBC回顾 1.1.认识MyBatis 1.1.使用IDEA创建maven工程 1.2.引入mysql依赖包 1.3.准备数据 1.4 使用JDBC手写MyBatis框架 ...

  3. Linux-centos-64bit安装MySQL

    1.下载mysql安装包到 /usr/local/soft [root@VM_0_9_centos ~]# cd /usr/local/soft[root@VM_0_9_centos soft]# w ...

  4. PHP代码样例

    1 <?php 2 3 /** 4 * 时间:2015-8-6 5 * 作者:River 6 * 超级有用.必须收藏的PHP代码样例 7 */ 8 class Helper { 9 10 /** ...

  5. NET 5 Cron表达式

    cron表达式通过特定的规则指定时间,用于定时任务 1. 整体结构 cron表达式是一个字符串,分为6或7个域,每两个域之间用空格分隔,其语法格式为: "秒域 分域 时域 日域 月域 周域 ...

  6. MySQL忘记密码了怎么解决

    前言:在不考虑到原来用户对关联数据库的授权问题的情况下,有以下三种思路解决 #1.登录状态下修改 说明:在登录状态的话,直接使用命令修改密码就行了 mysql> use mysql; mysql ...

  7. 【程序包管理】Linux程序包管理之rpm安装总结

    rpm简介 rpm( Red Hat Package Manager )是一个开放的软件包管理系统.它工作于Red Hat Linux及其他Linux系统,成为Linux中公认的软件包管理标准. rp ...

  8. MySQL如何计算统计redo log大小

      在MySQL中如何计算.统计重做日志(redo log)的生成情况呢? 例如10分钟内,生成了多少M的redo log呢?30分钟内又生成了多少M的redo log......MySQL没有像Or ...

  9. 老吕教程--01后端Node.js框架搭建(安装调试KOA2)

    今天开始从零搭建后端框架,后端框架基于Koa2,通过Typescript语言编写. 在写后端框架之前,自己也了解过Express,感觉Koa2更加灵活,由于有多年后端研发经验,所以采用Koa2,简单敏 ...

  10. 使用mybatis执行对应的SQL Mapper配置中的insert、update、delete等标签操作,数据库记录不变

    我使用springMVC集成mybatis,执行SQLMapper配置文件里的insert操作,发现程序没有报错,但数据库表里却没有刚才插入的记录.查了很多资料,终于在一篇博客上找到了答案:在执行完方 ...