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

1、LCD控制器

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

2、LCD時序圖

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


REGBANK由17個可編程的寄存器和一個256X16調色板內存組成,他們用來配置LCD控制器


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


VIDPRCS接收來自LCDCDMA的數據,并轉換成合適的數據格式再送到LCD驅動器中。


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


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


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


對上面對參數解釋一下

VSYNC:垂直同步信號


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

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


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

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


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


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


HFPD:表示一行有限數據結束到下一個水平同步信號開始之間VCLK的個數

VCLK:像素時鐘信號


VD[23:0]:LCD像素數據輸出端口

VDEN:數據使能信號


LEDN:行結束信號


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


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


 3、LCD操作


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


一個像素點的顏色是由三種顏色(紅,綠,藍)按照一定比例配置得到的,每種顏色由幾位二進制來表示,到底是由幾位來表示需要我們設置LCD寄存器來配置。LCD支持單色(1BPP),4級灰度(2BPP),16級灰度(4BPP),256級灰度(8BPP)調色板顯示模式和16BPP和24BPP的非調色板顯示模式。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顯示模式圖如下所示


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


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


LCDCON1寄存器如下圖所示

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


LCDCON2寄存器如下圖所示 

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


LCDCON3寄存器如下圖所示

參考數據手冊對上圖進行配置,其中HOZVAL為319


LCDCON4寄存器如下圖所示

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


LCDCON5寄存器如下圖所示


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

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


下面介紹一下幀內存地址寄存器

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

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

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

下面給出幾個例子


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


#include "2440addr.h"

 

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

//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的幀緩沖區的起始地址的【21:1】位

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

 

//聲明一個幀內存用于保存幀圖像數據

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;

}

關鍵字:mini2440  裸機  LCD 引用地址:mini2440裸機之LCD

上一篇:裸機程序在mini2440上的運行
下一篇:mini2440裸機程序 統寶3.5 LCD驅動 TopPoly-TD035STED4

推薦閱讀

在半導體領域,日本廠商一貫以來都是以深厚的基礎積累,前瞻的技術研究在世界上聞名。為了深入了解他們對未來半導體技術的規劃和看法,半導體行業觀察記者日前前往日本千葉縣國際會展中心參加“CEATEC JAPAN 2018”。通過對稻盛和夫先生創辦的京瓷集團的產品布局的了解,我們大體看到了日本企業關注的新趨勢。 汽車電子是重中之重 最近幾年,隨著智能汽...
任何一件工業品來講,瑕疵都是關乎企業生存,乃至社會安全的重要因素。盡管瑕疵檢測十分重要,但隨著產品精密度越來越高,瑕疵檢測也變得越來越難?;趯π袠I發展的深刻認知,英特爾通過與深視科技合作,為工業品瑕疵檢測提供了一套行之有效的解決方案,助力企業識微見遠。韓非子云,千丈之堤,以螻蟻之穴潰;百尺之室,以突隙之煙焚。戰國時期,魏國相國...
開創了全面屏時代的小米 MIX 系列是小米最高端的系列,一直以來都有著獨樹一幟的設計風格,IT之家了解到,上代小米 MIX 3 還是在 2018 年發布的,不少用戶自然期待下代產品何時到來,但根據最新消息,暫時不要等待該機。  據數碼博主 @數碼閑聊站 稱,“暫時不要等待 MIX,這個系列目前沒有聽說有量產信息。”該博主還透露,明年屏下...
英飛凌全新 SECORA? Pay 產品組合采用 40 nm 技術,可實現領先業界的非接觸式性能近年來,非接觸式支付持續走熱。COVID-19 疫情以來,市場充滿挑戰,非接觸式支付的需求也在增長。支付市場日益轉而采用非接觸式解決方案,調查顯示,2021 年非接觸式支付的市場占有率為76%,這一數字將在未來五年內增長至 91%*。英飛凌科技股份有限公司 (FSE:IF...

史海拾趣

問答坊 | AI 解惑

求助:C中調匯編

void delay100us(unsigned char n) { #pragma asm more:        mov                R3,#48 djnz        R3,$ djnz  & ...…

查看全部問答∨

怎樣將rhapsody的構造型符號由'?'改為'<<>>'?

1.rhapsody中,在object struct diagram里創建一個類,指定構造型后,為什么出現了?號而不是號?比如是?task?而不是。7.0和7.4版本都如此,請問怎么解決這一問題 2.怎么創建一個behavior類型的構造型呢?新建一stereotype后,可選的構造型選項里面 ...…

查看全部問答∨

Windows CE安裝問題

各位XDJM,最近公司想搞基于Windows CE的嵌入式開發,小弟在Microsoft官網在線安裝成功,機子上也安裝了Microsoft Visual Studio 2005,但不知道如何啟動Windows CE,如何進行下一步程序開發,工程部署,望哪位大俠不吝賜教!…

查看全部問答∨

求助:下載NK.BIN文件出錯

下載NK.BIN文件時報校驗和出錯,如下所示。換了一塊FLASH,該FLASH有幾個壞塊,請問與FLASH有沒關系? 我用前一塊FLASH下載是正常的 Download BIN file information: ----------------------------------------------------- [0]: Base Add ...…

查看全部問答∨

為什么H-JTAG可以檢測到CPU 而SJF2440檢測不到

H-JTAG可以檢測到CPU 而SJF2440檢測不到,提示no cpu is delected 確定驅動已經安裝完成 …

查看全部問答∨

電飯鍋電氣總成系統的調整

本帖最后由 jameswangsynnex 于 2015-3-3 20:00 編輯 普及型自動恒溫式電飯鍋的電氣總成系統主要包括磁鋼限溫器、雙金屬片恒溫器、開關杠桿、壓力彈簧、電靜觸點、拉桿、壓簧片、電源指示燈等部件組成。  當電飯鍋在更換總成或者更換局部器件后 ...…

查看全部問答∨

EmbestSTM32F103V100-II開發板上市!

產品價格:¥550.00咨詢電話:0755-25504951  25638952  25532557購買配置: · STM103V100-II開發板1塊 · 單色LCD顯示屏 1塊 · 交叉串口線 1條 · USB線 1條& ...…

查看全部問答∨

開關電源和變壓器

我對于開關電源的理解就是,開關電源其實就是一種變壓器,不同的是,開關電源能A-D轉換,而通常所指的變壓器只能變壓,不能變性? 望各位大蝦指點。 …

查看全部問答∨

有沒有誰搞過積分運算的C程序呀

有沒有誰搞過積分運算的C程序呀,拿出來分享下哇 我覺得離散的積分就是累加求和?!?

查看全部問答∨

【朱兆祺帶你學嵌入式】第一章第一節 Linux基本命令

在進行嵌入式Linux學習開發的過程中,將經常使用到Linux的操作命令。實際上,Linux系統中的命令也是為實現特定的功能而編寫的程序,而且絕大數的命令是用C語言編寫的。有些實用性強的程序被廣泛使用和傳播,逐漸地演變成Linux的標準命令。但是Linux ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 晋宁县| 南阳市| 阜康市| 杭州市| 偃师市| 莫力| 隆回县| 丽江市| 绥宁县| 汝南县| 汉寿县| 滨州市| 三都| 左云县| 兴化市| 雷州市| 凤山县| 交城县| 古蔺县| 花垣县| 枞阳县| 休宁县| 高台县| 陈巴尔虎旗| 盘山县| 元氏县| 越西县| 五莲县| 中阳县| 潮州市| 瑞昌市| 星座| 丹巴县| 界首市| 体育| 大余县| 文化| 赤水市| 海原县| 通城县| 兴隆县|