日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LCD编程_LCD控制器

發布時間:2025/4/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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、

?BPP24BL :?This bit determines the order of 24 bpp video memory? 。這一位只對24bpp中數據的存放格式有影響,對16bpp/8bpp都是沒有影響的。

如果采用的是24bpp,在這里我們采用第一種方式,即將BPP24BL設置為0

那如果是16bpp,應該設置什么東西,使其指定數據的存放格式呢?

對于16bpp來說,是通過HWSWP來進行指定數據存放格式的,在此將HWSWP取為1

對于8bpp來說,又是通過什么來進行指定呢?

對于8bpp來說,是通過BSWP來進行指定數據存放格式的,在此將BSWP取為1

在這個地方,我們用pixelplace來指定數據存放的格式。

FRM565 :?This bit selects the format of 16 bpp output video data. 用來設置16bpp數據輸出的格式的,采用565格式。

INVVCLK:This bit controls the polarity of the VCLK active edge 。這一位控制著VCLK是上升沿有效還是下降沿有效。

INVVLINE :水平同步信號的極性

INVVFRAME:垂直同步信號的極性

INVVD :數據的極性

INVVDEN :數據使能信號的極性

INVPWREN :電源信號的極性

因此有了下面的程序:

4、framebuffer地址

?

至此,根據傳入的LCD參數設置LCD控制器就已經完成了。

5、

接下來完成s3c2440_lcd_controller_enalbe,首先來看一下,lcd的原理圖。

LED是lCD的背光驅動的電源。LED的背光驅動電路:

當KEYBOARD為高電平時,它可以給背光驅動電路提供電源,此時LCD才會亮起來。

那KEYBOARD又接在哪里呢?搜索一下:

可以看到KEYBOARD接的是GPB0,用于控制背光燈。需要設置為輸出,需要設置GPBCON寄存器

使GPB0輸出為1,需要設置GPBDAT寄存器

LCDCON1中的bit0,用來使能LCD控制器本身,是否輸出信號。需要設置為1

LCDCON5中的PWREN

PWREN:LCD_PWREN output signal enable/disable.

6、

再看一下lcd的原理圖,對于lcd用到的那些引腳也需要進行設置。

比如說VD19這樣的引腳,搜索VD19

從這個圖可以看出,對于VD[23:0],用到了兩組寄存器 GPD和GPC。

對于VM,需要設置GPC4;

對于VLINE,需要設置GPC2

對于LCD_LPCREVB,需要設置GPC7

對于LCD_LPCREV,需要設置GPC6

對于VFRAME,需要設置GPC3

對于VCLK,需要設置GPC1

對于LEND,需要設置GPC0

打開GPDCON和GPCCON寄存器,看一下:

可以看到相鄰的兩位取10即可。

可以看到相鄰的兩位取10即可。

對于LCD_PWREN,需要設置GPG4。

因此就有了下面的代碼:

現將整個代碼貼出來:

1 #define HCLK 100 2 3 void jz2440_lcd_pin_init(void) 4 { 5 /* 初始化引腳 : 背光引腳 */ 6 GPBCON &= ~0x3; 7 GPBCON |= 0x01; 8 9 /* LCD專用引腳 */ 10 GPCCON = 0xaaaaaaaa; 11 GPDCON = 0xaaaaaaaa; 12 13 /* PWREN */ 14 GPGCON |= (3<<8); 15 } 16 17 18 /* 根據傳入的LCD參數設置LCD控制器 */ 19 void s3c2440_lcd_controller_init(p_lcd_params plcdparams) 20 { 21 int pixelplace; 22 unsigned int addr; 23 24 jz2440_lcd_pin_init(); 25 26 /* [17:8]: clkval, vclk = HCLK / [(CLKVAL+1) x 2] 27 * 9 = 100M /[(CLKVAL+1) x 2], clkval = 4.5 = 5 28 * CLKVAL = 100/vclk/2-1 29 * [6:5]: 0b11, tft lcd 30 * [4:1]: bpp mode 31 * [0] : LCD video output and the logic enable/disable 32 */ 33 int clkval = (double)HCLK/plcdparams->time_seq.vclk/2-1+0.5; 34 int bppmode = plcdparams->bpp == 8 ? 0xb :\ 35 plcdparams->bpp == 16 ? 0xc :\ 36 0xd; /* 0xd: 24bpp */ 37 LCDCON1 = (clkval<<8) | (3<<5) | (bppmode<<1) ; 38 39 /* [31:24] : VBPD = tvb - 1 40 * [23:14] : LINEVAL = line - 1 41 * [13:6] : VFPD = tvf - 1 42 * [5:0] : VSPW = tvp - 1 43 */ 44 LCDCON2 = ((plcdparams->time_seq.tvb - 1)<<24) | \ 45 ((plcdparams->yres - 1)<<14) | \ 46 ((plcdparams->time_seq.tvf - 1)<<6) | \ 47 ((plcdparams->time_seq.tvp - 1)<<0); 48 49 /* [25:19] : HBPD = thb - 1 50 * [18:8] : HOZVAL = 列 - 1 51 * [7:0] : HFPD = thf - 1 52 */ 53 LCDCON3 = ((plcdparams->time_seq.thb - 1)<<19) | \ 54 ((plcdparams->xres - 1)<<8) | \ 55 ((plcdparams->time_seq.thf - 1)<<0); 56 57 /* 58 * [7:0] : HSPW = thp - 1 59 */ 60 LCDCON4 = ((plcdparams->time_seq.thp - 1)<<0); 61 62 /* 用來設置引腳極性, 設置16bpp, 設置內存中象素存放的格式 63 * [12] : BPP24BL 64 * [11] : FRM565, 1-565 65 * [10] : INVVCLK, 0 = The video data is fetched at VCLK falling edge 66 * [9] : HSYNC是否反轉 67 * [8] : VSYNC是否反轉 68 * [7] : INVVD, rgb是否反轉 69 * [6] : INVVDEN 70 * [5] : INVPWREN 71 * [4] : INVLEND 72 * [3] : PWREN, LCD_PWREN output signal enable/disable 73 * [2] : ENLEND 74 * [1] : BSWP 75 * [0] : HWSWP 76 */ 77 78 pixelplace = plcdparams->bpp == 24 ? (0<<12) : |\ 79 plcdparams->bpp == 16 ? (1<<0) : |\ 80 (1<<1); /* 8bpp */ 81 LCDCON5 = (plcdparams->pins_pol.vclk<<10) |\ 82 (plcdparams->pins_pol.rgb<<7) |\ 83 (plcdparams->pins_pol.hsync<<9) |\ 84 (plcdparams->pins_pol.vsync<<8) |\ 85 (plcdparams->pins_pol.de<<6) |\ 86 (plcdparams->pins_pol.pwren<<5) |\ 87 (1<<11) | pixelplace; 88 89 /* framebuffer地址 */ 90 /* 91 * [29:21] : LCDBANK, A[30:22] of fb 92 * [20:0] : LCDBASEU, A[21:1] of fb 93 */ 94 addr = plcdparams->fb_base & ~(1<<31); 95 LCDSADDR1 = (addr >> 1); 96 97 /* 98 * [20:0] : LCDBASEL, A[21:1] of end addr 99 */ 100 addr = plcdparams->fb_base + plcdparams->xres*plcdparams->yres*plcdparams->bpp/8; 101 addr >>=1; 102 addr &= 0x1fffff; 103 LCDSADDR2 = addr;// 104 } 105 106 void s3c2440_lcd_controller_enalbe(void) 107 { 108 /* 背光引腳 : GPB0 */ 109 GPBDAT |= (1<<0); 110 111 /* pwren : 給LCD提供AVDD */ 112 LCDCON5 |= (1<<3); 113 114 /* LCDCON1'BIT 0 : 設置LCD控制器是否輸出信號 */ 115 LCDCON1 |= (1<<0); 116 } 117 118 void s3c2440_lcd_controller_disable(void) 119 { 120 /* 背光引腳 : GPB0 */ 121 GPBDAT &= ~(1<<0); 122 123 /* pwren : 給LCD提供AVDD */ 124 LCDCON5 &= ~(1<<3); 125 126 /* LCDCON1'BIT 0 : 設置LCD控制器是否輸出信號 */ 127 LCDCON1 &= ~(1<<0); 128 } 129 130 struct lcd_controller s3c2440_lcd_controller = { 131 .init = s3c2440_lcd_controller_init, 132 .enalbe = s3c2440_lcd_controller_enalbe, 133 .disable = s3c2440_lcd_controller_disable, 134 };

?

轉載于:https://www.cnblogs.com/-glb/p/11335680.html

總結

以上是生活随笔為你收集整理的LCD编程_LCD控制器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美中文日韩 | 日韩专区中文字幕 | av成人免费观看 | 成人xxxx| 欧美性猛交xxxx免费看久久久 | 大桥未久中文字幕 | 黄色网址进入 | 亚洲欧美日韩精品在线 | 久久r视频| 日本福利片在线观看 | 日韩高清专区 | 国产男同gay网站 | 亚洲精品久久久久久国产精华液 | 看黄色a级片 | 日韩网站在线 | 五月婷婷综合在线 | 中文字幕 成人 | 插插插操操操 | 综合国产在线 | 九色影视| 性感av在线 | 欧美色综合 | 91视频社区 | 亚洲福利精品 | www.久久久久久久久久 | www.av欧美 | 欧美天堂视频 | 亚洲国产成人精品一区二区三区 | 91在线色 | 久久久久久久久久免费视频 | 一本大道综合伊人精品热热 | 国产超碰人人模人人爽人人添 | 夜夜激情| 国产成人精品aa毛片 | 成人片黄网站久久久免费 | 在线观看免费国产 | 午夜视频福利网站 | 十八禁视频网站在线观看 | 国产乱码77777777| 特黄视频免费看 | 老熟女毛茸茸浓毛 | 亚洲AV无码成人精品一区 | 这里只有精品视频在线观看 | 97久草 | 日本三级中文字幕在线观看 | 欧美丰满bbw | 欧美精品乱人伦久久久久久 | 欧美性网址 | 爽好多水快深点欧美视频 | 日韩精品短片 | 折磨小男生性器羞耻的故事 | 日本中文在线 | 色妻影院 | 精品人妻无码一区二区 | 国产毛片99| 五月婷婷综合激情 | 亚洲第一淫片 | 日韩精品一区中文字幕 | 国产1区在线观看 | 中文字幕美女 | 国产肥白大熟妇bbbb视频 | 天堂男人av | 黄色大片网站 | 精品国产99久久久久久宅男i | 国产在线国偷精品免费看 | 久久久久亚洲国产 | 色悠久久综合 | 欧美视频1区 | 日韩欧美三级在线 | 性日本xxx| 51人人看| 特黄大片又粗又大又暴 | 黑人巨大猛交丰满少妇 | 黄色片99 | 一级啪啪片 | 国产精品久久不卡 | 一级片中文字幕 | 日韩欧美国产高清 | 精品国产一区二区三区久久狼黑人 | 天堂福利视频 | 精品字幕| 99999视频| 日韩精品第一区 | 国产三级中文字幕 | 国产精品日日做人人爱 | 五月激情婷婷综合 | 蜜桃传媒一区二区亚洲 | 久久天堂网 | 亚洲精品一区二区三区在线观看 | 欧美色图在线播放 | 波多野结衣一区二区三区在线 | 中文字幕第二页 | 嫩草视频在线免费观看 | 在线看你懂得 | 免费在线观看的黄色网址 | 无码国产精品一区二区高潮 | 日韩欧美中文字幕在线播放 | 粗大的内捧猛烈进出在线视频 | 欧美a图|