网恋四个月,她用四年来忘记

by admin on 2019年3月30日

本节来上学裸机下的LCD
驱动,本节学完后,再来学习Linux下何以行使LCD驱动

她和她是在三个客官群里认识,他的别称是:余生。他在法国首都上班,他21,她19,她在邢台读书。他们隔着半在那之中中原人民共和国。

 

他们有共同的喜好,喜欢Joker Xue,喜欢的歌都以2个品格的。她起来玩王者,不会下载就来群里问,他连连不嫌麻烦回答。她不会玩,群里有大神,他就发专属红包给大神带她玩。

Linux中的LCD驱动,链接如下:

因为她不玩王者,后来三回偶然的机会她口干去群里聊天他刚幸而,他们开端私聊,聊到了四点多,她好不简单感觉到困了。

(Linux-LCD层次分析链接:http://www.cnblogs.com/lifexy/p/7603327.html)

从那以往他们时常聊天,女孩在群里平日被撩,他以为她放荡。退了群,删了她,她说不出的难熬,重新加他,加了少数次终于允许,他们的涉及也开端发生了神秘的成形。他给他寄过零食,发过红包。

(Linux-LCD驱动分析链接:http://www.cnblogs.com/lifexy/p/7604011.html)

说过发工钱就养他,可惜没等到发工钱他们就已经完了。女孩有说过我们在一齐吧,他们究竟在一块儿也好不简单没有在一块儿的聊了二十多天。

 

他说,没见过面,就这么做自小编女对象,你挺大胆的。她打趣说,没有见过本身就喜好自个儿,你也挺大胆的。

 

他初阶去玩王者说要带他,然则他们却从没一起打过一局,有一遍他不亮堂如何来头生气了,而她有时间再群里聊天也不理他,他问:如若有一天小编偏离了,你会不会大胆的来找我。


她回:不会,因为你会相差一定是失望了太久,不打搅是自家最后的和蔼。

 

她:你认为大家的关联是何许?

横屏4.3寸LCD为480*272(行:477个像素点
       列:273个行)

她:比起情人更像朋友。

1.LCD原理图 :

她:作者也认为。

图片 1

她:对不起,其实自身是二个最棒缺少安全感的女子,没有灭此朝食的胆略和立志,我也相当的慢热,不奢望你给自个儿时刻,我们……还是做朋友吗。

Pin1- Pin6:Von/ Voff
 
电源正/负(由GPG4说了算,高电平有效)

他说:挺好的,给本人点时间,作者会自个儿走。

Pin2:VM/VDEN 数据使能信号
(0:表示正在跳行,1:表示能够传输像素数据) 

他们再没联系过。

Pin8:VLINE/HSYNC 水平同步信号(每扫完一行,即发3遍水平同步信号)  

有2遍她找回她问:有没有想作者。

Pin28:VFRAME/VSNC 垂直同步信号(每扫完一屏,即发二次垂直同步信号) 

他未曾回,可是看到她音信的那一刻她很快乐和感动。然而转念想想还是算了吧。她没有勇气也未尝信心,喜欢她起来他就早已上马自卑了。纵然她们在一块的年华不到叁个月。后来她把他删了,也退了群。

Pin30:VLCK 时钟信号 

他回忆他跟她说过她在三个电视台观者群里当保管,她报名了中号进了他在的群。地址是她在的都市。他看来时,特意问了他是在这座城池上学依然家就在那。她说,平昔在那。

Pin42,Pin45 LED+,LED-   背光展现开关
(由0:off   1:no)

她俩平素不见过面,她不精晓她叫什么,不精晓她何地人。但是却在他心底住了一整个学院。三年后完成学业,她赶到东京,从中号里加了他的QQ号。

VD23~VD19:R信号   

见一面吧,作者是你网上前女友。

VD15~VD10:G信号 

他俩约在了二谦的火锅店。她回想他说过要他带她去薛之谦先生的火锅店的。可惜去时只是故交重逢。他也有了妻子,而她也满了她3个梦,至少这厮她爱了上上下下四年。

VD7~VD3    :B信号 

很对不起你的余生不是本人。

数码是运用16Bpp像素,牧马人GB565格式(因为LCD控制器不扶助18Bpp格式) 

稍微激情,才发生了几天依然多少个月可是你却要用毕生去忘记。

例如:墨玉绿揽胜极光GB值分别为209,92,174(11010001,01011100,10101110)

本身是南部姑娘哟

多少从高位往下取,Sportage和B取七位,G取7个人,那么值为0XD2F5。

565PAJEROGB引脚老是图如下:

图片 2

 

1.2布置引脚

1     GPCUP   = 0xffffffff;   // 禁止内部上拉
2     GPCCON  = 0xaaaaaaaa;   // GPIO管脚用于VD[7:0],LCDVF[2:0],VM,VFRAME,VLINE,VCLK,LEND 
3     GPDUP   = 0xffffffff;   // 禁止内部上拉
4     GPDCON  = 0xaaaaaaaa;   // GPIO管脚用于VD[23:8]
5     GPBCON &= ~(GPB0_MSK);  // Power enable pin
6     GPBCON |= GPB0_out;
7     GPBDAT &= ~(1<<0);            // Power off

2.设置LCDCON1~5控制寄存器

2.1BSWP和HWSWP介绍

改变存款和储蓄格式,对于16bpp奇骏GB565(高数据在后)来说,BSWP=0,
HWSWP=1

图片 3

2.2翻看2440中LCD控制器开始状态时序图:

图片 4

VSPW: 垂直同步脉冲宽度 pulse
widch 

VBPD:
垂直脉冲后沿延迟(用来等待LCD模块响应的时刻)  back delay 

VFPD:
垂直脉冲前沿延迟(用来等待LCD模块响应的光阴)  Front delay

HSPW: 行同步脉冲宽度 pulse
widch 

HBPD:
行脉冲后沿延迟(用来等待LCD模块响应的岁月)  back delay 

HFPD:
行脉冲前沿延迟(用来等待LCD模块响应的时刻)  Front delay

 LINEVAL:行数,用来控制垂直尺寸,对于4.3寸时,LINEVAL=272-1

HOZVAL:行数,用来控制水平像素点个数,对于4.3寸时,HOZVAL=480-1

2.3 查看
LCD芯片手册时序图,总括周期时间:

图片 5

图片 6

图片 7

从上海教室第22中学得到时钟周期为10Mhz(100ns)

通过图1和图3计算出:

HSPW+1=T7=5 clock

HFPD+1=T8-T11=11 clock 

HBPD+1=T6-T7-T8=17 clock

VSPW+1=T1=1 Line

VFPD+1=T2-T5=2 Line

VBPD+1=T0-T2-T1=4 Line

2.4
配置LCDCON1~5

依照地点就先来定义全局变量:

 #define  HSPW_16bpp      5-1
 #define  HFPD _16bpp     11-1
 #define  HBPD _16bpp     17-1
 #define  VSPW _16bpp     1-1
 #define  VFPD _16bpp     2-1
 #define  VBPD _16bpp     4-1

设置LCDCON1寄存器:

CLKVAL[17:8]:

设置VCLK时钟, CLKVAL
=HCLK/(LCD时钟*2)-1

本裸板的HCLK=100Mhz,LCD时钟=10MHZ,所以CLKVAL
=4

PNRMODE [6:5]:

设置为TFT模式,PNRMODE =0x3

BPPMODE[4:1]:

设置为16BPP, BPPMODE=0x0C

ENVID [0]:

操纵PWREN信号(GPG4)输出,先配备好再出口PWREN,
ENVID =0

(开启在此以前应该安装LCDCON五人[3]允许PWREN信号才有效)

设置LCDCON2寄存器:

VBPD [31:24]:垂直脉冲后沿延时, VBPD=VBPD_16bpp;

LINEVAL[23:14]:垂直行数,决定垂直大小, LINEVAL=272-1;

VFPD[13:6]:垂直脉冲前沿延时, VFPD= VFPD_16bpp;

VSPW[5:0]:垂直同步脉冲宽度, VSPW= VSPW_16bpp;

设置LCDCON3寄存器:

HBPD[25:19]:水平脉冲后沿延时, HBPD= HBPD_16bpp;

HOZVAL[18:8]:水平像素点个数, HBPD= 479;

HFPD[7:0]:水平脉冲前沿延时, HFPD= HFPD_16bpp;

设置LCDCON4寄存器:

HSPW[7:0]:水平同步脉冲宽度, HSPW = HSPW_16bpp;

设置LCDCON5寄存器:

FRM565[11]:设置16bpp输出格式, FGL450M565=1(RubiconGB565);

INVVCLK[10]:设置VCLK记性,LCD手册如下,所以等于0,不设置(下落沿读取数据)

INVVLINE [9]:HSYNC水平同步信号反转,
因为LCD手册和2440手册差别等,所以INVVLINE=1;

INVVFRAME[8]:VSYNC垂直同步信号反转,
因为LCD手册和2440手册不雷同,所以INVVFRAME =1;

INVVFRAME[3]:PWREN信号(GPG4)允许位,=0,不设置,等设置了缓存寄存器后才设置

HWSWP [0]:更改存款和储蓄格式,这里HWSWP=1,BSWP[1]暗中认可等于0,使大家的LCD像素展现从低到高排列

代码如下:

 LCDCON1 = (4<<8) | (0X3<<5) |  (0x0C <<1) |
(0<<0);

 LCDCON2 = ((VBPD_16bpp)<<24) | (271<<14) | 
((VFPD_16bpp)<<6) |((VSPW_16bpp)<<0);

 LCDCON3 = ((HBPD_16bpp)<<19) | (479<<8) |
((HFPD_16bpp));

 LCDCON4 = (HSPW_16bpp);

 LCDCON5 = (1<<11) | (1<<9) | (1<<8) | 
(1<<0);

 LCDCON1 &=~(1<<0);          // 关门PWREN信号输出

 LCDCON5 &=~(1<<3);          //禁止PWREN信号

 

3.设置LCDSADDR1~3缓冲地址寄存器

设置LCDSADDR1寄存器:

LCDBANK[29:21]:

封存缓冲初叶地址A[30:22]   

LCDBASEU[20:0]:

保存缓冲开始地址A[21:1]

设置LCDSADDR2寄存器:

LCDBASEL[20:0]:

封存存缓冲截止地址A[21:1],那里我们采纳4.3寸LCD,所以等于((0x30500000+(480)*(272)*2)>>1)&0x1fffff;
这里*2是意味着八个像素占了2字节,倘若8bpp情势,则就不要求倍加2  

设置LCDSADDR3寄存器:

OFFSIZE[21:11]:

保存LCD上一行结尾和下一行起头的地点之间的差(半字数为单位),大家运用的是接连地址,所以不设置,暗许为0

PAGEWIDTH [10:0]:

保存LCD一行占的大幅(半字数为单位),大家每种像素点是半字数,所以等于480

代码如下:               

1 LCDSADDR1 = ((0x30400000>>22)<<21) |  ((0x30400000>>1)& 0x1fffff);
2 LCDSADDR2 = ((0x30400000+(480)*(272)*2)>>1)& 0x1fffff; 
3 LCDSADDR3 = (0<<11) | (480*2/2);

 

4.同意并出口PWREN信号

GPGCON = (GPGCON & (~(3<<8))) | (3<<8);   // GPG4用作LCD_PWREN
GPGUP  = (GPGUP & (~(1<<4))) | (1<<4);    // 禁止内部上拉   

LCDCON5 = (LCDCON5 & (~(1<<5))) | (0<<5);  // 设置LCD_PWREN的极性: 正常
LCDCON5 = (LCDCON5 & (~(1<<3))) | (1<<3);     // 允许LCD_PWREN信号输出

LCDCON1 |= 1;                  //输出LCD_PWREN信号

 5.驱动LCD呈现白色**

 fb_base_addr=0x30400000;    //缓存起始地址
 LCDCON1 |= 1;                // 使能LCD驱动
 GPBDAT |= (1<<0);         // 开背光
 color=0xffffff;                   //显示白色颜色
 for (y = 0; y < 272; y++)         //向缓存地址里存数据
      for (x = 0; x < 480; x++)
    {
    UINT16 *addr = (UINT16 *)fb_base_addr + (y * 480 + x);  //定义指针变量等于缓存地址
     red   = (color >> 19) & 0x1f;
     green = (color >> 10) & 0x3f;
     blue  = (color >>  3) & 0x1f;
     color = (red << 11) | (green << 5) | blue; // 格式5:6:5
   *addr = (UINT16) color;               //addr表示缓存地址,*addr表示缓存地址里的变量,                                 
    }
 LCDCON1 &= 0x3fffe;                // 失能LCD驱动
 GPBDAT &= ~(1<<0);         // 关背光

  

6.TPAL一时调色板寄存器介绍

   
当清屏时,能够选取TPAL寄存器,快捷清屏 

    位[24]     TPAL使能位

    位[23:0]  RGB数据位

诸如: TPAL=0x1ffffff
(使能TPAL寄存器,并设为鲜青屏)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图