当前位置: 首页 > news >正文

详解TCC89x的LCD数值设置

//=====================================================================
//TITLE:
// 详解TCC89x的LCD数值设置
//AUTHOR:
// norains
//DATE:
// Tuesday 7-December-2010
//Environment:
// Visual Studio 2005
// Windows CE 6.0
// Telechips Magellan 1.9.1
//=====================================================================

如果大家使用TCC89x作为产品研发的话,我估计没有几个人会直接采用EVB上的LCD型号——价格太高,又面临停产。所以,替换相应的LCD屏,是大势所趋。不过,不同的屏有不同规格,如何才能让屏正常工作呢?

要想正常调试LCD,我们先来了解Telechips Magellan BSP里是如何对LCD进行设置的。如果各位朋友仔细查看过Magellan的代码,会发现Driver里是没有对LCD进行设置的代码;对LCD的设置代码,全部位于BOOT文件夹中。更确切点,是位于BOOT文件夹下的LCD.cpp文件。这也不难理解,因为无论是处于Bootloader阶段,还是进入WinCE之后,都必须要进行显示,而这两个阶段的显示对于LCD的设置都是一样的,所以就没有必要在WinCE中再次对LCD进行设置。

对于不同LCD型号的设置,一切都在于LCD.h文件中的lcd_cfg数组,其定义如下:


仔细看图的朋友可能对数组上的注释有所迷惑,比如,VPW,VBP这些究竟是什么东西?可能缩写大家有点看不明白,我就将相应的定义罗列如下:

W:Width
H:Height
VPW:Vsync Pulse Width
VBP:VSYNC Back Porch
VFP:Vertical front Porch
HPW:Hsync Pulse Width
HBP:Hsync Back Porch
HFP:Hsync Front Porch
PWDX:Output Format
FREQ:Frequency

在这些数值当中,除了W,H,PWDX和FREQ以外,都是和具体的LCD有关的。而这些有关的数值,都可以在相应的LCD屏中能够找到。以AT070TN83这款LCD为例子,其有个表格,指明了这些数值的范围,如图:


我们只要根据LCD的Datasheet推荐的数值直接填到lcd_cfg数组中即可。

那么,剩下的W,H,PWDX和FREQ又是什么数值呢?W和H比较好办,这个是和分辨率有关的,如果LCD的分辨率是800x480,那么W就为800,H就是480。至于输出格式PWDX嘛,那就必须要看TCC89x的Datasheet了,如图:


从图中可以知道,如果LCD接收的是RGB888 24bit的信号,那么PWDX就设置为12,否则就可以参考列表选择一个最合适的数值。

最后的一个数值FREQ,其实意义不大,因为60的频率能够适应大部分的TFT屏。但如果LCD对于输出频率有严格的要求,并且经过上面的数值设置还无法正常工作,可以尝试调节这个数值试试。

相关文章:

  • gentoo系统安装
  • 你为什么不写注释?
  • GO语言练习:网络编程 TCP 示例
  • “梳子”的用途很大
  • Linux监控本机当前状态命令
  • eclipse中svn的各种状态图标详解
  • 201507221403_《backbone之一——新建模型和集合、实例化模型、模型上监听事件的方法、模型设置和获取后台数据、配置理由方法、视图绑定事件的方法、绑定模型等》...
  • Android HAL实例解析
  • 15款优秀移动APP产品原型设计工具
  • ThreadPoolExecutor运转机制详解
  • 图片垂直居中在中间
  • MeeGo handset 1.1开发环境[5]:一个desktop小应用
  • Java虚拟机学习 - 对象访问
  • 20款Notepad++插件下载和介绍
  • ios协议
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • Javascript弹出层-初探
  • java概述
  • jQuery(一)
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • October CMS - 快速入门 9 Images And Galleries
  • rc-form之最单纯情况
  • SQL 难点解决:记录的引用
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 使用权重正则化较少模型过拟合
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • # include “ “ 和 # include < >两者的区别
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (论文阅读11/100)Fast R-CNN
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (一)UDP基本编程步骤
  • (转)jQuery 基础
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .NET命令行(CLI)常用命令
  • .net网站发布-允许更新此预编译站点
  • // an array of int
  • [2669]2-2 Time类的定义
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [BUUCTF 2018]Online Tool
  • [C++进阶篇]STL中vector的使用
  • [CSS]盒子模型
  • [CUDA 学习笔记] CUDA kernel 的 grid_size 和 block_size 选择
  • [Django 0-1] Core.Checks 模块
  • [GDMEC-无人机遥感研究小组]无人机遥感小组-000-数据集制备
  • [git]git命令如何取消先前的配置
  • [GPT]Andrej Karpathy微软Build大会GPT演讲(上)--GPT如何训练
  • [HackMyVM]靶场Boxing
  • [Kubernetes]2. k8s集群中部署基于nodejs golang的项目以及Pod、Deployment详解
  • [linux] GFLOPS和TFLOPS的换算
  • [Luogu 3958] NOIP2017 D2T1 奶酪
  • [Neural Network] {Université de Sherbrooke} L2.9 Param Initialization