十九、更改LCD显示屏
一、裸机修改
之前测试用的屏幕是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显示屏的更多相关文章
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】原创教程连载导读【连载完成,共二十九章】
前言: 无数昼夜的来回轮替以后,这本<驱动篇I>终于编辑完毕了,笔者真的感动到连鼻涕也流下来.所谓驱动就是认识硬件,还有前期建模.虽然<驱动篇I>的硬件都是我们熟悉的老友记,例 ...
- NeHe OpenGL教程 第十九课:粒子系统
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Gradle 1.12翻译——第十九章. Gradle 守护进程
有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...
- Android进阶(十九)AndroidAPP开发问题汇总(三)
Android进阶(十九)AndroidAPP开发问题汇总(三) Java解析XML的几种方式: http://inotgaoshou.iteye.com/blog/1012188 从线程返回数据的两 ...
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十九:SDRAM模块② — 多字读写
实验十九:SDRAM模块② — 多字读写 表示19.1 Mode Register的内容. Mode Register A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A ...
- centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课
centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数 ...
- centos LAMP第一部分-环境搭建 Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课
centos LAMP第一部分-环境搭建 Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课 打命令之后可以输入: e ...
- Flask 教程 第十九章:Docker容器上的部署
本文翻译自The Flask Mega-Tutorial Part XIX: Deployment on Docker Containers 这是Flask Mega-Tutorial系列的第十九部分 ...
- 无废话ExtJs 入门教程十九[API的使用]
无废话ExtJs 入门教程十九[API的使用] extjs技术交流,欢迎加群(201926085) 首先解释什么是 API 来自百度百科的官方解释:API(Application Programmin ...
随机推荐
- [GXYCTF2019]simple CPP
[GXYCTF2019]simple CPP 一.查壳 无壳,64位程序 二.IDA分析 找到主函数后动态调试,看的更清楚 经过调试后我们可以找到len就是储存字符串长度的变量,之后判断长度是不是大于 ...
- Logistic 回归-原理及应用
公号:码农充电站pro 主页:https://codeshellme.github.io 上一篇文章介绍了线性回归模型,它用于处理回归问题. 这次来介绍一下 Logistic 回归,中文音译为逻辑回归 ...
- Java 细粒度锁续篇
在上篇文章中大概介绍了 Java 中细粒度锁的几种实现方式,并且针对每种方式都做了优缺点说明,在使用的时候就需要根据业务需求选择更合适的一种.上篇文章中的最后一种弱引用锁的实现方式,我在里面也说了其实 ...
- Blogs实现顶部的欢迎信息
简单,就直接上代码: <div style="text-align: center; font-size:20px; margin-bottom:0px; margin-top:0px ...
- Hyperledger fabric 1.4 环境搭建(一)
Hyperledger fabric 1.4 环境搭建(一) 1.更换下载源 更换apt的下载源,因为官方下载源很慢,需要更换到国内的镜像站 1.1.进入/etc/apt/目录 cd etc/apt ...
- 读取 excel文件组装字典数据
package com.murong.ecp.app.mbu.action.bmbuurm8; import java.io.FileOutputStream;import java.io.Outpu ...
- flowable的多人会签和一票否决
项目结构: 接下来代码: Duorenhuiqian.bpmn20.xml: <?xml version="1.0" encoding="UTF-8"?& ...
- SQL中隔行编号的操作
一般在sql中进行排序编号的时候都是: row_number() over(order by xxx) 但是有时候某些行不想让他们参与排序,这时候可以: row_number() over(order ...
- stm32之can总线过滤器研究
stm32的can总线的配置如下: CAN_InitStructure.CAN_TTCM=DISABLE;//禁止时间触发通信模式 CAN_InitStructure.CAN_A ...
- 聊一聊这个总下载量3603w的xss库,是如何工作的?
上篇文章这一次,彻底理解XSS攻击讲解了XSS攻击的类型和预防方式,本篇文章我们来看这个36039K的XSS-NPM库(你没有看错就是3603W次, 36039K次,36,039,651次,数据来自h ...