生物医学工程生产实习指导书(7)

2019-04-15 21:21

0 = 在VCLK下降沿视频数据被取走 1 =在VCLK上升沿视频数据被取走

INVVLINE [9] STN/TFT: 这个位设置行脉冲的极性

0 = Normal 1 = Inverted

INVVFRAME [8] STN/TFT: 这个位设置VFRAME脉冲的极性

0 = Normal 1 = Inverted

INVVD [7] STN/TFT: 这个位设置VD (video data)脉冲的极性

0 = Normal 1 = VD is inverted.

INVPWREN [5] STN/TFT: 这个位设置PWREN信号的极性

0 = Normal 1 = Inverted

BSWP [1] STN/TFT: 字节交换控制位

0 = Swap Disable 1 = Swap Enable

HWSWP [0] STN/TFT: 半字交换控制位

0 = Swap Disable 1 = Swap Enable

表4-6 为LCD的帧缓冲区开始地址寄存器1的的配置说明。

表4-6

28

LCDBANK: [29:21] 指示视频缓冲区在系统存储器的段地址A[30:22]

LCDBANK在视点移动时不能变化, LCD 帧缓冲区应当与4M区域对齐,因此在分配存储区应当注意

LCDBASEU: [20:0]

指示帧缓冲区或在双扫描LCD时的高帧缓冲区的开始地址A[21:1]

注:

1. LCDBANK在ENVID=1时不能变化.

2. 如果LCDBASEU,LCDBASEL在ENVID=1时变化,新的量将在下一帧起作用, 表4-7 为LCD的帧缓冲区开始地址寄存器2的的配置说明。

表4-7

LCDBASEL [20:0] 指示在使用双扫描LCD时的低帧存储区的开始地址A[21:1] 公式如下: LCDBASEL =LCDBASEU + (PAGEWIDTH + OFFSIZE) x (LINEVAL +1)

注:用户通过改变LCDBASEU 和LCDBASEL的值来滚动屏幕,但在帧结束时,不能改变LCDBASEU 和LCDBASEL的值,因为预取下一帧的数据优先于改变帧,如果这时改变帧, 预取的数据将无效和将显示不正确.为了检查LINECNT,中断应当被屏蔽,否则如果在读LINECNT后,任意中断刚好执行,因为ISR的执行,LINECNT的值可能是旧的。

表4-8为LCD的帧缓冲区开始地址寄存器3的的配置说明。它主要是进行虚拟屏幕地址设置。

OFFSIZE: [21:11] 虚拟屏幕偏移量(半字的数量),该值定义前一显示行的

最后

的半字和新的显示一行首先的半字之间的距离

29

PAGEWIDTH: [10:0] 虚拟屏幕宽度(半字的数量),该值定义帧的观察区域的

宽度

注: PAGEWIDTH 和OFFSIZE必须在ENVID = 0时变

表4-8

表4-9为LCD的RGB查找表寄存器3的的配置说明。在这三个寄存器中,我们要设定使用的8种红色,8种绿色,4种蓝色。

30

表4-9

其实,不同红色的差异,是通过时间抖动的算法及帧率控制的方法来实现的。对于绿、蓝也同样。因此,还要设置一下有关抖动模式寄存器。详细请看下面关于初始化S3C2410的LCD控制器的程序。

#define M5D(n) ((n) & 0x1fffff) #define MVAL (13)

#define MVAL_USED (0)

#define MODE_CSTN_8BIT (0x2001) #define LCD_XSIZE_CSTN (320) #define LCD_YSIZE_CSTN (240)

#define SCR_XSIZE_CSTN (LCD_XSIZE_CSTN*2) //虚拟屏幕大小 #define SCR_YSIZE_CSTN (LCD_YSIZE_CSTN*2) //

31

#define HOZVAL_CSTN (LCD_XSIZE_CSTN*3/8-1)// Valid VD data line number is 8.

#define LINEVAL_CSTN (LCD_YSIZE_CSTN-1) #define WLH_CSTN (0) #define WDLY_CSTN (0)

#define LINEBLANK_CSTN (16 &0xff) #define CLKVAL_CSTN (6)

// 130hz @50Mhz,WLH=16hclk,WDLY=16hclk,LINEBLANK=16*8hclk,VD=8 #define LCDFRAMEBUFFER 0x33800000 //_NONCACHE_STARTADDRESS

void LCD_Init(int type) {

switch(type) {

case MODE_CSTN_8BIT:

frameBuffer8Bit=(U32 (*)[SCR_XSIZE_CSTN / 4])LCDFRAMEBUFFER; // Packed Type : The L.C.M of 12 and 32 is 96.

rLCDCON1=(CLKVAL_CSTN<<8)|(MVAL_USED<<7)|(2<<5)|(3<<1)|0; // 8-bit single scan,8bpp CSTN,ENVID=off

rLCDCON2=(0<<24)|(LINEVAL_CSTN<<14)|(0<<6)|0;

rLCDCON3=(WDLY_CSTN<<19)|(HOZVAL_CSTN<<8)|(LINEBLANK_CSTN<<0); rLCDCON4=(MVAL<<8)|(WLH_CSTN<<0); rLCDCON5= 0;

//BPP24BL:x,FRM565:x,INVVCLK:x,INVVLINE:x,INVVFRAME:x,INVVD:x, //INVVDEN:x,INVPWREN:x,INVLEND:x,PWREN:x,ENLEND:x,BSWP:x,HWSWP:x rLCDSADDR1=(((U32)frameBuffer8Bit>>22)<<21)|M5D((U32)frameBuffer8Bit>>1);

rLCDSADDR2=M5D(((U32)frameBuffer8Bit+((SCR_XSIZE_CSTN)*LCD_YSIZE_CSTN))>>1);

rLCDSADDR3=(((SCR_XSIZE_CSTN-LCD_XSIZE_CSTN)/2)<<11)|(LCD_XSIZE_CSTN / 2);

rDITHMODE=0;

rREDLUT =0xfdb96420; rGREENLUT=0xfdb96420; rBLUELUT =0xfb40;

32


生物医学工程生产实习指导书(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:跨境电商人才初级认证试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: