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、