LCD编程_LCD控制器

CLKVAL :

VCLK = HCLK / [(CLKVAL+1) x 2]--------> CLKVAL = HCLK/VCLK/2-1

在这个地方HCLK=100M,那么VLCK等于多少呢?需要打开lcd的芯片手册

从中可以看出,5<= vclk<=12,正常情况是取9.

当VCLK =9 时,CLKVAL = 4.5 。取一个整数为5。当CLKVAL取为5时,再判断一下,VCLK是否在5到12之间。

PNRMODE:取11 = TFT LCD panel

BPPMODE :只支持8bpp/16bpp/24bpp

ENVID:LCD video output and the logic enable/disable. 用来使能LCD控制器本身,是否输出信号。在这个地方暂不设置,后面初始化函数中再进行设置。

将上一篇博客中led.h文件中的time_sequence增加一个数据成员vclk。

因此就有了下面这样的代码:

2、垂直方向和水平方向上一些参数的设置

垂直:

水平:

 

从上面的图可以看出:

垂直:

VBPD+1 = tvb  -------->VBPD = tvb - 1

VFPD+1 = tvf   --------->VFPD = tvf - 1

VSPW+1 = tvp --------->VSPW = tvp - 1

LINEVAL+1 = line  ----->LINEVAL = line -1

水平:

HBPD+1 = thb 

HBPD+1 = thb -------->HBPD= thb - 1

HFPD+1 = thf   --------->HFPD = thf - 1

HOZVAL +1 = line  ----->HOZVAL = 列 -1

注意在这个地方水平方向的同步脉冲宽度并没有设置,别急它是在另一个寄存器中设置的。

HSPW+1 = thp  ------>HSPW = thp - 1

因此有了下面的代码:

 

3、

猜你喜欢

转载自www.cnblogs.com/-glb/p/11335680.html
LCD