微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > wince代码写入LCD驱动参考,数码产品怎样分别是不是LCD坏点

wince代码写入LCD驱动参考,数码产品怎样分别是不是LCD坏点

时间:04-26 来源:网络整理 点击:

  数码产品的坏点到底是不是LCD坏点?

  一、什么是CCD/LCD坏点?坏点和亮点分别是什么?

  我的一些顾客都在同时问两个问题:"能保证CCD和LCD没有坏点同时也没有亮点吗?"这里必须说明,所谓的"坏点"和"亮点"其实是一个概念。在术语上,应该叫"坏点"。

  坏点就是CCD元件上不能成像的点。具体表现就是:每张照片的固定位置出现全白或全黑的斑点,就是CCD元件上不发光或者始终发光的点。这是一个比较严重的问题,严重影响了成像效果,一旦发现坏点是要坚决换机的。

  同理,所谓LCD坏点,也是指LCD(显示屏)上不能成像的点。LCD上的坏点并不影响相机的实际成像效果,一般来说,LCD上有3个以上坏点才算质量问题,厂家才会同意换机。比如柯达公司就规定LCD有5个坏点才换屏。LCD坏点只是影响观瞻,影响心情吧,其实3个以下的坏点,肉眼基本是没有感觉的。

  在我们实际销售的过程中,CCD坏点几率非常低,目前只遇到过一台。LCD坏点则遇到过7、8台,一般也都在发货前进行了调换。

  二、如何界定、判断"坏点"?

  关于这个问题,网上很多文章都在讲。我不想罗嗦了。只是想用通俗的语言给大家再讲一遍。

  1、获得检测"坏点"的全黑照片。拿到相机后,预热几分钟,把相机的ISO(感光度)调节到最小值(一般是100),关闭闪光灯,设定曝光时间为1/60秒、光圈最大值,然后用镜头盖盖住镜头(没有镜头盖的,可在平坦的桌子上放张厚纸,将镜头扣在纸上拍摄,一定不能让光线进入到镜头里面,同时也不要太过用力),按下快门,拍摄一张全黑的照片。然后,把曝光时间设定为1秒,再拍摄一张全黑照片,这两张照片就是我们要检测"坏点"的证据。如果你购买的相机有自动降躁功能,那么也要注意关闭。

  如果是全自动相机,则一般在默认模式、关闭闪光灯、ISO最低值的情况下,拍摄一张全黑照片就可以了。

  有的专家把整个过程说的过分复杂了,在实际操作中,除非是专业级别的玩家对待专业级别的相机,普通家用相机和一般的摄影爱好者用这个通俗易懂的方式获得全黑照片就可以。

  2、对全黑照片进行检测。使用Dead Pixel Test软件来进行检测的。设定超过60流明的点是噪点(hot),超过250流明的点为坏点(dead)。把全黑照片输入电脑,通过该软件进行测试,很快就会出来测试结果——有多少躁点、有没有坏点,结果很快就出来了。这个软件网上很多地方可以下载,是免费的软件,这个软件很容易上手,具体不再讲了。

  3、用全黑照片测试LCD屏幕。用LCD屏幕来回放这一张全黑照片,就可以看出来LCD屏幕是否有坏点。一般来说,不超过3个都是合格的。当然,对于一个非常注重自己信誉的卖家来说,也许一个也不会放过。

  WinCE的LCD驱动程序该如何编写?

  本文以1024*768分辨率的TFT_16BPP真彩LCD为例,说明在WIN CE 4.2中驱动程序的修改事项,目标板的微处理器是S3C2410A。

  该LCD的时序图如下图所示:

  Note:LCD时序的参数和时钟相位因不同LCD而异,请参考相应LCD的datasheet.

  在WIN CE 4.2中修改LCD驱动程序有五个相关文件,分别是:

  1. …\WINCE420\PLATFORM\SMDK2410\INC\s2410.h

  2. …\WINCE420\PLATFORM\SMDK2410\KERNEL\HAL\cfw.c

  3. …\WINCE420\PLATFORM\SMDK2410\DRIVERS\DISPLAY\S3C2410LCD\s3c2410disp.cpp

  4. …\WINCE420\PLATFORM\SMDK2410\FILES\config.bib

  5. …\ WINCE420\PLATFORM\SMDK2410\FILES\platform.reg

  1. s2410.h

  …\WINCE420\PLATFORM\SMDK2410\INC\s2410.h

  主要有LCD控制器的寄存器定义、LCD控制器的工作时序定义、分辨率的定义等等。红色部分为修改后的内容:

  #define LCDTYPE TFT16BPP

  #define LCD_TYPE TFTxxx_xxx

  #define SCR_XSIZE_TFT (1280)

  #define SCR_YSIZE_TFT (960)

  #define LCD_XSIZE_TFT (1024)

  #define LCD_YSIZE_TFT (768)

  #define VBPD ((2-1)&0xff)

  #define VFPD ((2-1)&0xff)

  #define VSPW ((2-1) &0x3f)

  #define HBPD ((16-1)&0x7f)

  #define HFPD ((200-1)&0xff)

  #define HSPW ((16-1)&0xff)

  #define CLKVAL_TFT (1) //这个值的定义在LCD初始化函数中并不用到,而是直接用数值表示。

  2. cfw.c

  …\WINCE420\PLATFORM\SMDK2410\KERNEL\HAL\cfw.c

  红色部分为修改后的内容:

  staTIc void InitDisplay()

  {

  ********

s2410LCD-》rLCDC

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top