日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]PC主機:Ubuntu 10.4 和redhat 9.0目標(biāo)板:TQ2440開發(fā)板 Linux內(nèi)核:2.6.30屏幕型號:WXCAT35-TG3#001F 分辨率: 320X240本文將介紹如何移植LCD設(shè)備。在移植前,先配置下內(nèi)核,將LCD設(shè)備編譯進(jìn)內(nèi)核。1.移植移植LCD設(shè)

PC主機:Ubuntu 10.4 和redhat 9.0

目標(biāo)板:TQ2440開發(fā)板 Linux內(nèi)核:2.6.30

屏幕型號:WXCAT35-TG3#001F 分辨率: 320X240


本文將介紹如何移植LCD設(shè)備。

在移植前,先配置下內(nèi)核,將LCD設(shè)備編譯進(jìn)內(nèi)核。


1.移植

移植LCD設(shè)置只須修改位于arch/arm/mach-s3c2440/mach-smdk2440.c中的兩個結(jié)構(gòu)體的數(shù)據(jù)。

1.1 s3c2410fb_display結(jié)構(gòu)

修改后的內(nèi)容如下:



/*LCDdriverinfo*/

staticstructs3c2410fb_displaysmdk2440_lcd_cfg__initdata={

.lcdcon5=S3C2410_LCDCON5_FRM565|

S3C2410_LCDCON5_INVVLINE|

S3C2410_LCDCON5_INVVFRAME|

S3C2410_LCDCON5_PWREN|

S3C2410_LCDCON5_HWSWP,

.type=S3C2410_LCDCON1_TFT,

.width=320,//240,

.height=240,//320,

.pixclock=156250,//166667,/*HCLK60MHz,divisor10*/

.xres=320,//240,

.yres=240,//320,

.bpp=16,

.left_margin=20,

.right_margin=38,//8,

.hsync_len=30,//4,

.upper_margin=15,//8,

.lower_margin=12,//7,

.vsync_len=3,//4,

};


上面的參數(shù)是如何修改的呢?我們來看下。


type表示顯示模式,這里為TFT模式。

width和height表示屏幕的分辨率,我的分辨率是320X240。

xres和yres分別等于width和height。

bpp表示所每個像素點位數(shù),這里使用16位。

left_margin,right_margin,hsync_len,upper_margin,lower_margin,vsync_len這六個參數(shù)的值由LCD的手冊給出。下圖為LCD中的參數(shù):


在這里,我給出上面6個參數(shù)和LCD手冊中數(shù)據(jù)的對應(yīng)關(guān)系:


.left_margin = Hsync front porch = 20

.right_margin = Hsync back porch = 38

.hsync_len = Hsync pulse width = 30

.upper_margin = Vsyncbackporch = 15

.lower_margin = Vsync front porch = 12

.vsync_len = Vsync pulse width = 3


pixclock的值是用來計算CLKVAL的。在S3C2440的datasheet中,CLKVAL的計算公式為:

CLKVAL = HCLK / VCLK / 2 -1,而VCLK即為上面圖中的Dclk,值為6.4MHz。


/*s3c2410fb_activate_var

*

*activate(set)thecontrollerfromthegivenframebuffer

*information

*/

staticvoids3c2410fb_activate_var(structfb_info*info)

{

structs3c2410fb_info*fbi=info->par;

void__iomem*regs=fbi->io;

inttype=fbi->regs.lcdcon1&S3C2410_LCDCON1_TFT;/*regs.lcdcon1在s3c2410fb_check_var設(shè)置*/

structfb_var_screeninfo*var=&info->var;

intclkdiv=s3c2410fb_calc_pixclk(fbi,var->pixclock)/2;

dprintk("%s:var->xres=%dn",__func__,var->xres);

dprintk("%s:var->yres=%dn",__func__,var->yres);

dprintk("%s:var->bpp=%dn",__func__,var->bits_per_pixel);

if(type==S3C2410_LCDCON1_TFT){

s3c2410fb_calculate_tft_lcd_regs(info,&fbi->regs);/*根據(jù)var,計算出控制寄存器需要設(shè)置的值*/

--clkdiv;

if(clkdiv<0)

clkdiv=0;

}else{

s3c2410fb_calculate_stn_lcd_regs(info,&fbi->regs);

if(clkdiv<2)

clkdiv=2;

}

fbi->regs.lcdcon1|=S3C2410_LCDCON1_CLKVAL(clkdiv);/*設(shè)置CLKVAL*/

/*writenewregisters*/

dprintk("newregisterset:n");

dprintk("lcdcon[1]=0x%08lxn",fbi->regs.lcdcon1);

dprintk("lcdcon[2]=0x%08lxn",fbi->regs.lcdcon2);

dprintk("lcdcon[3]=0x%08lxn",fbi->regs.lcdcon3);

dprintk("lcdcon[4]=0x%08lxn",fbi->regs.lcdcon4);

dprintk("lcdcon[5]=0x%08lxn",fbi->regs.lcdcon5);

/*把計算好的值填入LCD控制器中*/

writel(fbi->regs.lcdcon1&~S3C2410_LCDCON1_ENVID,

regs+S3C2410_LCDCON1);/*仍然禁止LCD*/

writel(fbi->regs.lcdcon2,regs+S3C2410_LCDCON2);

writel(fbi->regs.lcdcon3,regs+S3C2410_LCDCON3);

writel(fbi->regs.lcdcon4,regs+S3C2410_LCDCON4);

writel(fbi->regs.lcdcon5,regs+S3C2410_LCDCON5);

/*setlcdaddresspointers*/

s3c2410fb_set_lcdaddr(info);/*設(shè)置LCD幀緩沖起始地址*/

fbi->regs.lcdcon1|=S3C2410_LCDCON1_ENVID,

writel(fbi->regs.lcdcon1,regs+S3C2410_LCDCON1);/*使能LCD*/

}

staticunsignedints3c2410fb_calc_pixclk(structs3c2410fb_info*fbi,

unsignedlongpixclk)

{

unsignedlongclk=clk_get_rate(fbi->clk);/*獲取當(dāng)前時鐘頻率(Hz)*/

unsignedlonglongdiv;

/*pixclkisinpicoseconds,ourclockisinHz

*

*Hz->picosecondsis/10^-12

*/

div = (unsigned long long)clk * pixclk;

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

7月29日消息,LG Display已將其在美國的70項LCD液晶顯示器相關(guān)專利轉(zhuǎn)讓給三星顯示,值得注意的是,三星顯示已于三年前退出LCD業(yè)務(wù)。

關(guān)鍵字: LCD 三星

HT16K24操作電壓為2.4V~5.5V,內(nèi)建I2C通信接口,提供三種LCD顯示與按鍵模式:24SEG × 4COM + 24 KEY;22SEG × 6COM + 22 KEY;20SEG × 8COM + 20 K...

關(guān)鍵字: LCD MCU 蜂鳴器

離線GPS工具:跟蹤、保存和查找具有距離和方位的航路點——沒有網(wǎng)絡(luò),沒有云,您的數(shù)據(jù),您的規(guī)則。

關(guān)鍵字: GPS設(shè)備 LCD 微控制器 Arduino Uno

在技術(shù)上,LCD和OLED各有其獨特之處。液晶電視通過控制液態(tài)晶體實現(xiàn)圖像顯示,其原理是在兩片玻璃基板中夾入液態(tài)晶體,通過細(xì)小的電線控制水晶分子的方向。而OLED憑借自發(fā)光二極管帶來更優(yōu)的視角與色彩表現(xiàn),其RGB色彩信號...

關(guān)鍵字: OLED LCD

雙鎖系統(tǒng),通過鍵盤輸入密碼開門,客人來了用短信開門

關(guān)鍵字: LCD 雙鎖系統(tǒng) L293D 變壓器

在汽車顯示系統(tǒng)領(lǐng)域,TFT LCD顯示屏目前是車載顯示面板的主流選擇。與此同時,OLED和micro-LED顯示屏也逐漸吸引了市場的廣泛關(guān)注。為了適應(yīng)不同的顯示技術(shù),我們需要開發(fā)相應(yīng)的電源技術(shù)。TFT LCD顯示屏通常使...

關(guān)鍵字: LCD OLED micro-LED

如今,汽車行業(yè)對先進(jìn)顯示屏的需求空前高漲,亟需能夠?qū)崿F(xiàn)更大尺寸、更高亮度、曲面設(shè)計、更高分辨率和更高對比度的解決方案。與此同時,各類新型車載顯示屏也日益受到青睞。目前,TFT LCD是汽車平板顯示技術(shù)的主流選擇。OLED...

關(guān)鍵字: LCD OLED micro-LED

大家好,歡迎回來。在這個項目中,我們將學(xué)習(xí)如何使用鍵盤和LCD顯示制作一個安全的基于Arduino的門鎖。你可以用它來保護你的辦公室、房間或家里的保險箱。要鎖門和開鎖,你需要在安全系統(tǒng)中輸入密碼。這確保了只有經(jīng)過授權(quán)的人...

關(guān)鍵字: 鍵盤 LCD Arduino 電子門鎖

April 1, 2025 ---- 樂金顯示廣州LCD 8.5代線今日(4月1日)正式交割至TCL華星光電,并改名為t11。至此,TCL華星光電將擁有2條6代、4條8.5代、1條8.6代和2條10.5代LCD產(chǎn)線。Tr...

關(guān)鍵字: 電視 PID面板 LCD

將您的樹莓派Pico變成帶有觸摸屏界面的USB-HID設(shè)備!在這個項目中,我們將在Arduino IDE中設(shè)置編程環(huán)境,為3.5”Pico Touch LCD屏蔽配置庫,測試基本功能,創(chuàng)建簡單的按鈕(用于復(fù)制和粘貼),顯...

關(guān)鍵字: 樹莓派 觸摸屏 LCD Windows
關(guān)閉