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

歷史上的今天

今天是:2024年10月09日(星期三)

正在發(fā)生

2021年10月09日 | S3C2440裸機(jī)------LCD_畫點(diǎn)線圓

發(fā)布者:心滿意足 來源: eefocus關(guān)鍵字:LCD 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

1.畫點(diǎn)

我們首先實(shí)現(xiàn)畫點(diǎn)的函數(shù),

 

#include "lcd.h"

 

/* 實(shí)現(xiàn)畫點(diǎn) */

 

/* 獲得LCD參數(shù) */

static unsigned int fb_base;

static int xres, yres, bpp;

 

void fb_get_lcd_params(void)

{

get_lcd_params(&fb_base, &xres, &yres, &bpp);

}

 

/* rgb: 0x00RRGGBB */

unsigned short convert32bppto16bpp(unsigned int rgb)

{

int r = (rgb >> 16)& 0xff;

int g = (rgb >> 8) & 0xff;

int b = rgb & 0xff;

 

/* rgb565 */

r = r >> 3;

g = g >> 2;

b = b >> 3;

 

return ((r<<11) | (g<<5) | (b));

}

 

 

/* color : 32bit, 0x00RRGGBB

 *

 */

void fb_put_pixel(int x, int y, unsigned int color)

{

unsigned char  *pc;  /* 8bpp */

unsigned short *pw;  /* 16bpp */

unsigned int   *pdw; /* 32bpp */

 

unsigned int pixel_base = fb_base + (xres * bpp / 8) * y + x * bpp / 8;

 

switch (bpp)

{

case 8:

pc = (unsigned char *) pixel_base;

*pc = color;

break;

case 16:

pw = (unsigned short *) pixel_base;

*pw = convert32bppto16bpp(color);

break;

case 32:

pdw = (unsigned int *) pixel_base;

*pdw = color;

break;

}

}

 

2.畫線、圓

畫線和畫圓的函數(shù)我們沒必要自己寫,直接從網(wǎng)上找,然后把里面的畫點(diǎn)函數(shù)替換成我們的即可。


 

#include "framebuffer.h"

 

/*

 * http://blog.csdn.net/p1126500468/article/details/50428613

 */

 

 //-------------畫圓函數(shù)。參數(shù):圓心,半徑,顏色----------

 //    畫1/8圓 然后其他7/8對(duì)稱畫  

 // ---------------->X  

 // |(0,0)   0  

 // |    7 1

 // |   6   2  

 // |    5 3

 //   (Y)V   4  

 //  

 // L = x^2 + y^2 - r^2  

 void draw_circle(int x, int y, int r, int color)  

 {

int a, b, num;  

a = 0;  

b = r;  

while(22 * b * b >= r * r) // 1/8圓即可  

{

fb_put_pixel(x + a, y - b,color); // 0~1  

fb_put_pixel(x - a, y - b,color); // 0~7  

fb_put_pixel(x - a, y + b,color); // 4~5  

fb_put_pixel(x + a, y + b,color); // 4~3  

   

fb_put_pixel(x + b, y + a,color); // 2~3  

fb_put_pixel(x + b, y - a,color); // 2~1  

fb_put_pixel(x - b, y - a,color); // 6~7  

fb_put_pixel(x - b, y + a,color); // 6~5  

   

a++;  

num = (a * a + b * b) - r*r;  

if(num > 0)  

{

b--;  

a--;  

}

}

 }

   

 //-----------畫線。參數(shù):起始坐標(biāo),終點(diǎn)坐標(biāo),顏色--------

 void draw_line(int x1,int y1,int x2,int y2,int color)

 {

int dx,dy,e;  

dx=x2-x1;  

dy=y2-y1;

if(dx>=0)

{

if(dy >= 0) // dy>=0  

{

if(dx>=dy) // 1/8 octant  

{

e=dy-dx/2;  

while(x1<=x2)

{

fb_put_pixel(x1,y1,color);  

if(e>0){y1+=1;e-=dx;}    

x1+=1;  

e+=dy;  

}

}

else // 2/8 octant

{

e=dx-dy/2;  

while(y1<=y2)

{

fb_put_pixel(x1,y1,color);  

if(e>0){x1+=1;e-=dy;}    

y1+=1;  

e+=dx;  

}

}

}

else // dy<0  

{

dy=-dy;   // dy=abs(dy)  

if(dx>=dy) // 8/8 octant  

{

e=dy-dx/2;  

while(x1<=x2)

{

fb_put_pixel(x1,y1,color);  

if(e>0){y1-=1;e-=dx;}    

x1+=1;  

e+=dy;  

}

}

else // 7/8 octant

{

e=dx-dy/2;  

while(y1>=y2)

{

fb_put_pixel(x1,y1,color);  

if(e>0){x1+=1;e-=dy;}    

y1-=1;  

e+=dx;  

}

}

}    

}

else //dx<0  

{

dx=-dx; //dx=abs(dx)  

if(dy >= 0) // dy>=0  

{

if(dx>=dy) // 4/8 octant  

{

e=dy-dx/2;  

while(x1>=x2)

{

fb_put_pixel(x1,y1,color);  

if(e>0){y1+=1;e-=dx;}    

x1-=1;  

e+=dy;  

}

}

else // 3/8 octant

{

e=dx-dy/2;  

while(y1<=y2)

{

fb_put_pixel(x1,y1,color);  

if(e>0){x1-=1;e-=dy;}    

y1+=1;  

e+=dx;  

}

}

}

else // dy<0  

{

dy=-dy;   // dy=abs(dy)  

if(dx>=dy) // 5/8 octant  

{

e=dy-dx/2;  

while(x1>=x2)

{

fb_put_pixel(x1,y1,color);  

if(e>0){y1-=1;e-=dx;}    

x1-=1;  

e+=dy;  

}

}

else // 6/8 octant

{

e=dx-dy/2;  

while(y1>=y2)

{

fb_put_pixel(x1,y1,color);  

if(e>0){x1-=1;e-=dy;}    

y1-=1;  

e+=dx;  

}

}

}    

}

 }

 

3.lcd_test.c

 

#include "geometry.h"

 

void lcd_test(void)

{

unsigned int fb_base;

int xres, yres, bpp;

int x, y;

unsigned short *p;

unsigned int *p2;

/* 初始化LCD */

lcd_init();

 

/* 使能LCD */

lcd_enable();

 

/* 獲得LCD的參數(shù): fb_base, xres, yres, bpp */

get_lcd_params(&fb_base, &xres, &yres, &bpp);

fb_get_lcd_params();

/* 往framebuffer中寫數(shù)據(jù) */

if (bpp == 16)

{

/* 讓LCD輸出整屏的紅色 */

 

/* 565: 0xf800 */

 

p = (unsigned short *)fb_base;

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

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

*p++ = 0xf800;

 

/* green */

p = (unsigned short *)fb_base;

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

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

*p++ = 0x7e0;

 

/* blue */

p = (unsigned short *)fb_base;

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

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

*p++ = 0x1f;

 

/* black */

p = (unsigned short *)fb_base;

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

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

*p++ = 0;

}

else if (bpp == 32)

{

/* 讓LCD輸出整屏的紅色 */

 

/* 0xRRGGBB */

 

p2 = (unsigned int *)fb_base;

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

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

*p2++ = 0xff0000;

 

/* green */

p2 = (unsigned int *)fb_base;

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

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

*p2++ = 0x00ff00;

 

/* blue */

p2 = (unsigned int *)fb_base;

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

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

*p2++ = 0x0000ff;

 

/* black */

p2 = (unsigned int *)fb_base;

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

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

*p2++ = 0;

 

}

 

delay(1000000);

/* 畫線 */

draw_line(0, 0, xres - 1, 0, 0xff0000);

draw_line(xres - 1, 0, xres - 1, yres - 1, 0xffff00);

draw_line(0, yres - 1, xres - 1, yres - 1, 0xff00aa);

draw_line(0, 0, 0, yres - 1, 0xff00ef);

draw_line(0, 0, xres - 1, yres - 1, 0xff4500);

draw_line(xres - 1, 0, 0, yres - 1, 0xff0780);

 

delay(1000000);

 

/* 畫圓 */

draw_circle(xres/2, yres/2, yres/4, 0xff00);

}

關(guān)鍵字:LCD 引用地址:S3C2440裸機(jī)------LCD_畫點(diǎn)線圓

上一篇:ARM寄存器的操作方法
下一篇:S3C2440裸機(jī)------LCD_LCD設(shè)置

推薦閱讀

隨著手機(jī)的攝像頭規(guī)格不斷向高像素推進(jìn),每家廠家都面臨著為了保持相機(jī)模組小尺寸,而必須要犧牲每個(gè)Pixel的感光面積的難題。當(dāng)手機(jī)主攝由1.12uM向1.0uM換代時(shí),這個(gè)矛盾變得尤為突出。為解決此問題,各家CIS廠商紛紛采用Binning Mode,4 Cell等各種手段來增加1.0uM Pixel產(chǎn)品的感光度, 然而這些技術(shù)不可避免的存在這樣或那樣的缺陷,比如不得不放棄PDAF...
臺(tái)積電先進(jìn)制程拓展又有新進(jìn)度,公司宣布,領(lǐng)先業(yè)界導(dǎo)入極紫外光(EUV)微影技術(shù)的7納米強(qiáng)效版(N7+)制程已協(xié)助客戶產(chǎn)品大量進(jìn)入市場(chǎng);6納米制程技術(shù)(N6)也將于2020年第1季試產(chǎn)、年底前量產(chǎn)。受惠利多消息,臺(tái)積電美國存托憑證(ADR)、8日臺(tái)股價(jià)雙雙再創(chuàng)歷史新高價(jià),盤中市值逾7.39萬億新臺(tái)幣改寫新高。臺(tái)積電7日晚間發(fā)布先進(jìn)制程新進(jìn)展,臺(tái)積電表示,...
本文通過LabVIEW虛擬實(shí)驗(yàn)軟件平臺(tái)設(shè)計(jì)了一種利用ATmega16單片機(jī)進(jìn)行數(shù)據(jù)采集,通過RS232串行通信將數(shù)據(jù)傳送給PC的簡(jiǎn)易虛擬示波器。用戶可以在開發(fā)平臺(tái)上對(duì)數(shù)據(jù)采集參數(shù)進(jìn)行設(shè)置和調(diào)整以及對(duì)波形數(shù)據(jù)存儲(chǔ)。系統(tǒng)的創(chuàng)新點(diǎn)是擺脫了傳統(tǒng)開發(fā)平臺(tái)的限制,具有多通道、方便、靈活等特點(diǎn),在數(shù)據(jù)采集、傳感器監(jiān)測(cè)等領(lǐng)域有重要應(yīng)用。虛擬儀器是基于PC技術(shù)發(fā)展起來的...
1.lcd.h我們?cè)趌cd.h里面定義一個(gè)結(jié)構(gòu)體,用來表示LCD需要的參數(shù)。#ifndef _LCD_H#define _LCD_H enum { NORMAL = 0, INVERT = 1,}; /* NORMAL : 正常極性 * INVERT : 反轉(zhuǎn)極性 */typedef struct pins_polarity { int vclk; /* normal: 在下降沿獲取數(shù)據(jù) */ int rgb; /* normal: 高電平表示1 */ int hsync; /* normal: ...

史海拾趣

問答坊 | AI 解惑

WINCE播放高位速的視頻文件,系統(tǒng)好卡,似乎是系統(tǒng)帶寬不足,望各位支招啊

如題,播放高位速的視頻文件有時(shí)候會(huì)黑一下屏,然后又恢復(fù)回來,系統(tǒng)為WINCE5.0,處理器是2440,播放器使用TCPMP,其中分頻比為1:3:6.刷LCD的點(diǎn)時(shí)鐘為33M,估計(jì)是很多帶寬都被用來刷頻了,望各位支招啊…

查看全部問答∨

要做云臺(tái)解碼器程序該怎么入手?

小弟最近想學(xué)習(xí)寫一個(gè)監(jiān)控?cái)z像頭云臺(tái)解碼器的程序。但不不知道如何才能入手。 不知道高手有何建議?或者有程序給小弟參考一下也可以。不勝感激。…

查看全部問答∨

PLC和觸摸屏在繼電器測(cè)試的應(yīng)用(1)

PLC和觸摸屏在繼電器測(cè)試的應(yīng)用(1) 轉(zhuǎn)載:http://www.semiapps.com.cn/content.php?content_id=90919234337251124&node_id=174  1引言   鐵路安全繼電器是鐵路信號(hào)控制系統(tǒng)中的重要執(zhí)行元件之一,必須在出廠時(shí)和使用過程 ...…

查看全部問答∨

AT88系列的加密芯片使用

大家有沒有使用過Atmel公司AT88系列的加密芯片的。。。有的進(jìn)來談?wù)勈褂媒?jīng)驗(yàn)呀,最近在用verilog寫這個(gè),感覺很困惑呀,我用的是AT88SC0104CA這個(gè)型號(hào)的芯片…

查看全部問答∨

LPC1114 I2C從發(fā)送

自己調(diào)LPC1114 已經(jīng)調(diào)出 主發(fā)送,主接受,從接收。現(xiàn)在從發(fā)生遇到一個(gè)難以解決的問題,拿出來和大家接著討論一下。 先上代碼,如下: case 0xA8:     /* An own SLA_R has been received. */ case 0xB0: &nbs ...…

查看全部問答∨

富士通工業(yè)測(cè)控DIY板_電機(jī)驅(qū)動(dòng)分析

電機(jī)驅(qū)動(dòng)電路A: 圖A是電機(jī)驅(qū)動(dòng)的上橋臂驅(qū)動(dòng)電原理圖。這種驅(qū)動(dòng)的好處是電路結(jié)構(gòu)簡(jiǎn)單,不容易被低電平的干擾信號(hào)所干擾,可靠性相對(duì)高,這是它的特點(diǎn)。但是從電路的特性和驅(qū)動(dòng)的原理來看,似乎又感覺有點(diǎn)什么欠缺的地方。譬如:在電機(jī)制動(dòng)、反轉(zhuǎn)工 ...…

查看全部問答∨

中斷設(shè)置問題

今天在程序中添加了IO口下降沿中斷,本來以為很easy的事情,發(fā)現(xiàn)缺出現(xiàn)了問題,設(shè)置為下降沿時(shí),下降沿和上升沿都會(huì)觸發(fā)中斷,改為上升沿觸發(fā)中斷,也是兩個(gè)邊沿信號(hào)都會(huì)觸發(fā)中斷,大家有沒有遇見過這種問題,討論一下啦,…

查看全部問答∨

新唐nano130交換任意類型的板子

想交換TI,ST,NXP或者freescale等等任意類型的板子都可以,51的和msp430就算了我有了。謝謝。…

查看全部問答∨

一大波萌妹子正在接近!Java、C++、Python、Ruby、PHP、C#、JS

【工程師請(qǐng)注意】!一大波萌妹子正在接近!喂,別裝作不認(rèn)識(shí)好嘛! 精彩的編程語言擬人化:Java、C++、Python、Ruby、PHP、C#、JS,找找誰是你最熟悉的那個(gè)小女孩? Java 猶如宮澤賢治的《不畏風(fēng)雨》中出現(xiàn)的、性格木訥的女孩子。從小就由于遲 ...…

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

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 长沙市| 枣强县| 舟曲县| 布尔津县| 陵川县| 扎赉特旗| 沈丘县| 延庆县| 阜新市| 忻城县| 芦山县| 大新县| 贺州市| 高雄县| 喀什市| 柘城县| 林州市| 广昌县| 三原县| 万全县| 容城县| 瑞昌市| 民县| 微山县| 枣庄市| 德化县| 惠州市| 竹山县| 武邑县| 双流县| 揭东县| 肥城市| 馆陶县| 巴青县| 黄梅县| 墨江| 桃园市| 丘北县| 宜丰县| 南开区| 高青县|