娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年11月05日(星期二)

正在發(fā)生

2021年11月05日 | mini2440裸機之LCD

發(fā)布者:EtherealGaze 來源: eefocus關(guān)鍵字:mini2440  裸機  LCD 手機看文章 掃描二維碼
隨時隨地手機看文章

1、LCD控制器

打開S3C2440數(shù)據(jù)手冊可以看到LCD控制器硬件組成框圖如下

2、LCD時序圖

對此圖做簡單描述:LCD控制器主要由REGBANK,LCDCDMA,VIDPRCS,TIMEGEN等寄存器組成,如果不是用的三星的LCD,LPC3600和LCC3600就不用管它,它們專門為三星的LCD設(shè)計的。


REGBANK由17個可編程的寄存器和一個256X16調(diào)色板內(nèi)存組成,他們用來配置LCD控制器


LCDCDMA是一個專用的DMA,它能自動將幀內(nèi)存中的數(shù)據(jù)傳送到LCD驅(qū)動器,通過這個DMA通道,數(shù)據(jù)不需要CPU干涉就能傳送到LCD上顯示。


VIDPRCS接收來自LCDCDMA的數(shù)據(jù),并轉(zhuǎn)換成合適的數(shù)據(jù)格式再送到LCD驅(qū)動器中。


TIMEGEN由可編程的邏輯組成,生成LCD驅(qū)動器的控制信號。


我們在LCD上顯示的一幅圖像稱為一幀圖像。在LCD上顯示一幀圖像的原理:從第一行的最左邊開始掃描,一行結(jié)束后跳到下一行繼續(xù)掃描。當顯示完一幅圖像后,從新


第一行接著掃描。掃描的時候就像一個“Z”字形。掃描圖像必須在控制信號下進行,下面講解一下控制信號。在mini2440開發(fā)板上用的是W35的TFT屏。TFT屏工作時序如下圖所示


對上面對參數(shù)解釋一下

VSYNC:垂直同步信號


VSPW:表示垂直同步脈沖的寬度,用行數(shù)計算

VBPD:表示新一幀圖像的開始,垂直同步信號以后無效的行數(shù)


VFPD:表示新一幀圖像結(jié)束后,垂直同步信號以前的無效的行數(shù)

HSYNC:水平同步信號,表示新的一行的開始,即跳到最左邊開始行的一行數(shù)據(jù)的掃描。


HSPW:表示水平同步信號的寬度,用VCLK計算


HBPD:表示水平同步信號從開始到一行的有效數(shù)據(jù)開始之間VCLK的個數(shù)


HFPD:表示一行有限數(shù)據(jù)結(jié)束到下一個水平同步信號開始之間VCLK的個數(shù)

VCLK:像素時鐘信號


VD[23:0]:LCD像素數(shù)據(jù)輸出端口

VDEN:數(shù)據(jù)使能信號


LEDN:行結(jié)束信號


顯示圖像的時候會看到圖像四周有黑色邊框,結(jié)合時序圖解釋一下:當我們發(fā)出VSYNC信號后,要經(jīng)過(VSPW+1+VBPD+1)這么長時間,那么這么長時間所掃面的行是無效的,這對應(yīng)著我們圖像的最上邊的黑框,接下來是掃描LINEVAL+1行有效數(shù)據(jù),最后經(jīng)過(VFPD+1)個無效行,這對應(yīng)著圖像下面的黑框。對于每一行圖像數(shù)據(jù),HSYNC信號發(fā)出后,經(jīng)過(HSPW+1+HBPD+1)個無效像素,這對應(yīng)著我們圖像左邊黑框,接下來顯示HOZVAL+1個有效像素,接著掃描(HFPD+1)個無效像素,這對應(yīng)著我們圖像的右邊黑框。


VSYNC信號的出現(xiàn)表示一幀圖像的開始,我們把1s內(nèi)能顯示圖像的幀數(shù)稱為顯示器頻率,也叫做場頻率或者垂直頻率。顯示分辨率又稱屏幕分辨率,指顯示器屏幕上顯示的有效像素點的數(shù)目。這是不同的概念。


 3、LCD操作


下面講解如何操作LCD來顯一幀圖像:


一個像素點的顏色是由三種顏色(紅,綠,藍)按照一定比例配置得到的,每種顏色由幾位二進制來表示,到底是由幾位來表示需要我們設(shè)置LCD寄存器來配置。LCD支持單色(1BPP),4級灰度(2BPP),16級灰度(4BPP),256級灰度(8BPP)調(diào)色板顯示模式和16BPP和24BPP的非調(diào)色板顯示模式。BPP:bit   per   Pixel   即  位/像素。  我們的LCD就是選擇的16BPP顯示模式,16BPP有兩種表示方式,分別為5:5:5:1顯示模式和5:6:5顯示模式。我的LCD選擇的是5:6:5顯示模式,5:6:5表示的就是前5位二進制表示的事紅色,中間6位表示綠色,最后5位表示的是藍色。16BPP顯示模式圖如下所示


我們先了解下有關(guān)幀內(nèi)存的概念,所謂的幀內(nèi)存就是圖像數(shù)據(jù)的存放地址,我們將圖像數(shù)據(jù)放入到幀內(nèi)存中,然后自動通過LCDDMA將數(shù)據(jù)送到LCD上顯示。


我們主要要對一下幾個寄存器進行操作:LCDCON1,LCDCON2,LCDCON3,LCDCON4,LCDCON5,LCDSADDR1,LCDSADDR2,LCDSADDR3


LCDCON1寄存器如下圖所示

第0位是LCD信號輸出使能位,[4:1]位是選擇BBP模式,[6:5]位是選擇顯示模式,我們LCD是TFT屏,故此處應(yīng)該設(shè)置為3,[7]用不到暫時不管,[17:8]位用來設(shè)置像素信號始終,這個要根據(jù)具體的LCD數(shù)據(jù)手冊來設(shè)置,[27:18]沒用到暫時不管。


LCDCON2寄存器如下圖所示 

此處的各參數(shù)的含義前面已經(jīng)解釋過了,我們需要查看LCD的數(shù)據(jù)手冊進行設(shè)置,其中LINEVAL設(shè)置為239,因為我們LCD是320X240的屏


LCDCON3寄存器如下圖所示

參考數(shù)據(jù)手冊對上圖進行配置,其中HOZVAL為319


LCDCON4寄存器如下圖所示

我們只需用到[7:0]位參考數(shù)據(jù)手冊對HSPW進行設(shè)置


LCDCON5寄存器如下圖所示


第0、1位用來設(shè)置數(shù)據(jù)存儲方式,我們ARM上電默認的方式是小端模式,即數(shù)據(jù)的低位放在低地址處,數(shù)據(jù)的高位放在高地址處。第3位用來設(shè)置給LCD供電,我們LCD有兩種供電方式,一種是外接電源,一種是我們io口輸出高電平供電,mini2440采用的是io口供電,采用IO供電的好處是當我們不用LCD的時候可以通過軟件來設(shè)置LCD的開啟與關(guān)閉。第8、9位是設(shè)置信號極性的。所謂信號極性入下圖所示

上面一個波形是正極性,下面一個為負極性。參考我們的LCD時序圖可以看出,我們在時鐘信號的下降沿采集數(shù)據(jù),故應(yīng)該設(shè)置為負極性信號,第10位設(shè)置為1。第11位用來設(shè)置顯示模式,我們采用的的是5:6:5模式。談到數(shù)據(jù)存儲,我們接下來講一講幀內(nèi)存的概念,所謂幀內(nèi)存就是圖像數(shù)據(jù)在內(nèi)存中的存儲地址,我們將數(shù)據(jù)存放在幀內(nèi)存中,然后將幀內(nèi)存的地址告訴LCD控制器,LCD會自動通過DMA讀取數(shù)據(jù)并顯示。因此,我們在編程的時候應(yīng)該事先聲明一個數(shù)組用來保存圖像數(shù)據(jù),然后將內(nèi)存地址告訴LCd控制器。


下面介紹一下幀內(nèi)存地址寄存器

【29:21】位用來保存幀內(nèi)存地址的高9位【30:22】,【20:0】用來保存LCD的幀緩沖區(qū)開始地址的【21:1】位

用來保存LCD的幀緩沖區(qū)的結(jié)束地址的【21:1】位。它的計算方法應(yīng)經(jīng)給出來了,LCDBASEL=((the frame end address)>>1)+1=LCDBASEU+(PAGEWID+OFFSIZE)x(LINEVAL+1)

我們用到【10:0】位,這里用來設(shè)置視口的寬度,半字位單位,我們一個像素就是半字,LCD的寬度為320個像素,故應(yīng)該設(shè)置為320,其他位置0即可。

下面給出幾個例子


1、我們在LCD上顯示一個藍色的點。程序如下:


#include "2440addr.h"

 

//根據(jù)數(shù)據(jù)手冊設(shè)置配置參數(shù),W35的屏的收據(jù)手冊可能參數(shù)上有點老了,反正我按照上面的配置就是不對,然后參照開發(fā)板自帶的程序進行配置

//LCDCON1配置

#define CLKVAL 4

#define BPPMODE 12

#define PNRMODE 3

 

//LCDCON2配置

#define HEIGHT 240

#define VBPD 10

#define VFPD 4

#define VSPW 1

 

//LCDCON3,4配置

#define WIDTH 320

#define HBPD 0x44

#define HFPD 0x04

#define HSPW 0x01

 

//LCDCON5配置

#define FRM565 1

#define INVVCLK 1

#define INVLINE 1

#define INVVFRAME 1

#define PWREN 1

#define BSWP 0

#define HWSWP 1

 

//此宏定義就是為了獲取LCD的幀緩沖區(qū)的起始地址的【21:1】位

#define Low21Bits(n) ((n)&0x1fffff)

 

//聲明一個幀內(nèi)存用于保存幀圖像數(shù)據(jù)

volatile unsigned short Lcd_Buffer[240][320];

 

//LCD控制寄存器初始化

void Lcd_Init(void)

{

rGPCCON=0xaaaa02a9;

rGPDCON=0xaaaaaaaa;  //先將GPC和GPD的管教配置為LCD下的功能。

rLCDCON1=(CLKVAL<<8)|(PNRMODE<<5)|(BPPMODE<<1);

rLCDCON2=(VBPD<<24)|((HEIGHT-1)<<14)|(VFPD<<6)|(VSPW);

rLCDCON3=(HBPD<<19)|((WIDTH-1)<<8)|(HFPD);

rLCDCON4=HSPW;

rLCDCON5=(FRM565<<11)|(INVVCLK<<10)|(INVLINE<<9)|(INVVFRAME<<8)|(BSWP<<1)|(HWSWP);

rLCDSADDR1=(((unsigned int)Lcd_Buffer>>22)<<21)|Low21Bits((unsigned int)Lcd_Buffer>>1);

rLCDSADDR2=Low21Bits(((unsigned int)Lcd_Buffer+(240*320*2))>>1);

rLCDSADDR3=(0<<11)|(WIDTH);

}

 

void Lcd_PowerEnable(int powerEnable)

{

    rGPGCON&=~(3<<8)|(2<<8);

    rGPGDAT|=1<<4;

    rLCDCON5&=~(1<<3)|(powerEnable<<3);

}

 

 

void PutPixel(unsigned int x,unsigned int y,unsigned short c)

{

    if((x<320)&&(y<240))

        Lcd_Buffer[y][x]=c;

}

 

 

void Lcd_ClearScr(unsigned int c)

{

    unsigned int x,y;

    for(y=0;y<240;y++)

    {

        for(x=0;x<320;x++)

        {

            Lcd_Buffer[y][x]=c;

        }

    }

}

 

int Main()

{

    Lcd_Init();

    Lcd_PowerEnable(1);

    rLCDCON1|=1<<0;

    Lcd_ClearScr(0xffff);

    while(1)

    {

        PutPixel(100,100,569);

    }

    return 0;

}

關(guān)鍵字:mini2440  裸機  LCD 引用地址:mini2440裸機之LCD

上一篇:裸機程序在mini2440上的運行
下一篇:mini2440裸機程序 統(tǒng)寶3.5 LCD驅(qū)動 TopPoly-TD035STED4

推薦閱讀

整體上,截止到目前(2018年2月底),全國機器人企業(yè)(企業(yè)名稱中明確標出)的總數(shù)為6874家。如果按照3%的月增幅,截止到目前,機器人公司數(shù)量估計超過8500家了。事實上,這些機器人企業(yè)數(shù)量只是可以查得到的數(shù)據(jù),還有更多企業(yè)以智能、自動化、科技類為主體,同樣還有部分智慧物流的企業(yè)都在從事機器人業(yè)務(wù),因此國內(nèi)機器人相關(guān)企業(yè)數(shù)量超萬家毫無疑問。2...
據(jù)外媒報道,手機、電腦或電動汽車中電池壽命的長短取決于電池負極材料中可以存儲多少鋰離子。如果電池中的鋰離子被耗盡,就無法產(chǎn)生電流來驅(qū)動設(shè)備,因而設(shè)備就無法使用。但是,現(xiàn)在具備較高鋰離子存儲能力的材料要么太重,要么形狀不合適,都無法代替目前電池中使用的電極材料 – 石墨。現(xiàn)在,普渡大學(xué)(Purdue University)的科學(xué)家和工程師們推出一...
一、如何測充電器好壞方式1:用萬用表的電阻檔或二極管檔量一下電源進線是否斷路。當然也可以給充電器插上電源,用直流電壓檔測量高壓濾波電容上(EJ)有沒有近300V左右的直流電壓,但如果仍是沒有的話,還要再用交流檔去測一下電源進線(BG)是否有交流220V輸入。用來排除是否是由電線斷路引起的故障。檢查步驟如下:A、用萬用表電阻檔或二極管檔依次測量...
電源和信號完整性測試對于成功的高速數(shù)字設(shè)計來說是至關(guān)重要的, 泰克示波器 MSO6B系列作為這樣的必要工具,在易于使用的觸摸屏環(huán)境中同時滿足這兩個測試需求,但在測試過程中總會遇到一些測試挑戰(zhàn),如何解決這些測試挑戰(zhàn)以獲得最佳性能,今天 安泰測試 就給大家分享一下如何應(yīng)對示波器接地良好,用錯電源線導(dǎo)致炸機的主要原因是什么?這天,隔壁桌同事王...

史海拾趣

問答坊 | AI 解惑

1、WAPI 是什么?

1、WAPI 是什么? 網(wǎng)絡(luò)通信發(fā)展的永恒主題是使人們能自由獲得網(wǎng)絡(luò)資源,而安全性保障是實現(xiàn)這一目標的關(guān)鍵要素和必要條件。安全性保障的缺失必然導(dǎo)致網(wǎng)絡(luò)非法操作并繼而影響上層通信內(nèi)容的安全。基于IP 協(xié)議的通信網(wǎng)絡(luò)向規(guī)模化、多樣化方向發(fā)展,網(wǎng) ...…

查看全部問答∨

嵌入式操作系統(tǒng)簡介

  Windows XP Embedded是桌面Windows XP的組件化版本。其構(gòu)建在已經(jīng)通過驗證的Windows 2000代碼庫基礎(chǔ)之上,它提供了業(yè)內(nèi)領(lǐng)先的可靠性、安全性與性能,并且具備最新的多媒體、Web瀏覽、電源管理及設(shè)備支持能力。 同時,Windows XP Embedd ...…

查看全部問答∨

貼片三極管上的印字與真實名稱對照表

昨天在上網(wǎng)的時候,查到了一個資料,覺得非常好,分享給大家,若覺得好,千萬別讓它沉了。 …

查看全部問答∨

ADC相關(guān)知識

ADC具有各種速率,使用不同的接口電路,并可提供不同的精確度。最常用的ADC類型包括閃速ADC、逐次逼近ADC和sigma-delta ADC。 1. 閃速ADC 閃速ADC是轉(zhuǎn)換速率最快的一類ADC。閃速ADC在每個電壓階躍中使用一個比較器和一組電阻。因此4位ADC具有16 ...…

查看全部問答∨

wince 和 pc同步問題

我的設(shè)備每次啟動后與pc機通過USB連接都會提示連接無效 我發(fā)現(xiàn)控制面板->PC連接屬性里面沒有"USB Socket"選項 必須進入我的設(shè)備->windows->啟動->運行USBSync后,PC連接屬性才有此選項.由此可以跟PC機同步了 我想每次啟動自動同步不 ...…

查看全部問答∨

讀取CF卡的序列號的問題

我的程序如下:是在網(wǎng)上弄到的。 // getCFSerialNumber.cpp : Defines the entry point for the application. // #include "stdafx.h" //my code #include <windows.h> #include <winioctl.h> #define IOCTL_DISK_BASE F ...…

查看全部問答∨

CE 網(wǎng)絡(luò)連接

    這兩天在搞3G的東西,因為我們現(xiàn)在的模塊用的是USB接口,然后模擬成一個COM6進行通信,在CE的: 控制面板->網(wǎng)絡(luò)連接 里要新建一個連接,選擇“撥號連接”然后設(shè)置好區(qū)域代碼,還有附加解調(diào)器命令+CGDCON,"IP","CMNET",mod ...…

查看全部問答∨

求助達人幫看的電源原理圖有什么問題

這個圖這樣可不可以?有什么問題?R90/R92/C94/C95的值是多少…

查看全部問答∨

使用 /sys 文件系統(tǒng)訪問 Linux 內(nèi)核(轉(zhuǎn)自IBM社區(qū))

使用 /sys 文件系統(tǒng)訪問 Linux 內(nèi)核 sysfs 虛擬文件系統(tǒng)提供了一種比 proc 更為理想的訪問內(nèi)核數(shù)據(jù)的途徑 程 任全 (crquan@gmail.com), Linux 內(nèi)核開發(fā)者、存儲開發(fā)工程師, UIT(創(chuàng)新科存儲技術(shù)有限公司) 簡介: sysfs ...…

查看全部問答∨

靜電源對元器件的影響

       靜電危害起因于靜電力和靜電火花,靜電危害中最嚴重的靜電放電(ESD)引起可燃物的起火和爆炸。人們常說,防患于未然,防止產(chǎn)生靜電的措施一般都是降低流速和流量,改造起電強烈的工藝環(huán)節(jié),采用起電較少的設(shè)備材料等。 ...…

查看全部問答∨
小廣播
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 隆昌县| 奈曼旗| 兰考县| 衡阳县| 同德县| 儋州市| 山阴县| 湛江市| 都昌县| 大城县| 湘阴县| 南投县| 德州市| 唐海县| 文登市| 通海县| 阿荣旗| 宝应县| 安岳县| 丰原市| 张北县| 新余市| 横峰县| 怀化市| 石河子市| 高邮市| 津市市| 中方县| 渑池县| 文昌市| 湖北省| 邛崃市| 六枝特区| 新营市| 青海省| 印江| 阜城县| 新闻| 彩票| 华阴市| 措勤县|