当前位置:首页 > 单片机 > 单片机
[导读]实验效果: 点击屏幕中的6副小图片,可将该小图片切换成全屏图片。1、欲实现小图片,需将原来图片压缩,此处压缩成原来的1/8。代码如下:void Paint_Bmp_Small(int x0,int y0,int h,int l,int k,unsigned char bmp[]

实验效果:
点击屏幕中的6副小图片,可将该小图片切换成全屏图片。
1、欲实现小图片,需将原来图片压缩,此处压缩成原来的1/8。代码如下:

void Paint_Bmp_Small(int x0,int y0,int h,int l,int k,unsigned char bmp[])

{
//从[x0,y0]至[h/k,l/k]为止被显示被压缩了1/k的图片

int x,y;

U32 c;

int p = 0;


h = h/k;

l = l/k;

for( y = 0 ; y < l ; y++ ) // l=240/k
{

for( x = 0 ; x < h ; x++ ) // h=320/k

{

c = bmp[p+1] | (bmp[p]<<8) ; // bmp[] 680个为1line,总的480line

if ( ( (x0+x) < SCR_XSIZE_TFT) && ( (y0+y) < SCR_YSIZE_TFT) )

LCD_BUFFER[y0+y][x0+x] = c ;

p = p + 2*k ; //每line的每2个像素都跳过K个值

}

p = p+640*(k-1); //640个为1line,就是说每2line中间都跳过K-1个line

}

}

2、在原有触摸屏取坐标值程序中添加截取此6张图的点击区域的代码:

if((xdata-xdata_save > 5)||(xdata-xdata_save < -5)
||(ydata-ydata_save > 5)||(ydata-ydata_save < -5))

{

Uart_Printf("X_value = %d,Y_value = %d,X_data = %d,Y_data = %dn",xdata,ydata,xdata_save,ydata_save);

if(( xdata >= 135)&&( xdata <= 226))

{
// 6张图的坐标区域

if(( ydata >=91 )&&( ydata <= 205))

gPictureNum = 1;

else if(( ydata >=233 )&&( ydata <= 347))

gPictureNum = 2;

else if(( ydata >=375 )&&( ydata <= 489))

gPictureNum = 3;

else if(( ydata >=517 )&&( ydata <= 631))

gPictureNum = 4;

else if(( ydata >=659 )&&( ydata <= 773))

gPictureNum = 5;

else if(( ydata >=802 )&&( ydata <= 916))

gPictureNum = 6;

}

}
3、主程序显示代码:

while(1)

{

if(gPictureNum)

{

switch(gPictureNum)

{

case 1:

LCD_displayScreen(0,0,0);

Paint_Bmp(0,0,320,240,picture1_320_240);

break;

case 2:

LCD_displayScreen(0,0,0);

Paint_Bmp(0,0,320,240,picture2_320_240);

break;

case 3:

LCD_displayScreen(0,0,0);
Paint_Bmp(0,0,320,240,picture3_320_240);
break;

case 4:

LCD_displayScreen(0,0,0);

Paint_Bmp(0,0,320,240,picture4_320_240);

break;

case 5:

LCD_displayScreen(0,0,0);

Paint_Bmp(0,0,320,240,picture5_320_240);

break;

case 6:

LCD_displayScreen(0,0,0);

Paint_Bmp(0,0,320,240,picture6_320_240);

break;

default:

LCD_displayScreen(0,0,0);

Uart_Printf("Clear Screen! n");

}

gPictureNum = 0;

}

Paint_Bmp_Small(20,200,320,240,8,picture6_320_240);

Paint_Bmp_Small(70,200,320,240,8,picture5_320_240);

Paint_Bmp_Small(120,200,320,240,8,picture4_320_240);

Paint_Bmp_Small(170,200,320,240,8,picture3_320_240);

Paint_Bmp_Small(220,200,320,240,8,picture2_320_240);

Paint_Bmp_Small(270,200,320,240,8,picture1_320_240);

}

}


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

  本文根据网络视频采集的需要,将网络传输与视频采集相结合,设计了以S3C2440为核心的USB摄像头视频采集和嵌入式Linux系统下的视频服务器,从而实现了远程网络视频信息采集。   

关键字: s3c2440 视频采集 usb摄像头

         之前在提起自动化或是智能化时,人们会不自觉的想到工业生产,这是因为自动化这个字眼进入中国,确实是以工业

关键字: 嵌入式 Linux s3c2440 视频采集

  引言   随着科技的不断发展,以数据业务为主的固定宽带无线接入技术发展已经很成熟,而移动宽带无线通信技术还并没有得到广泛的应用。由于移动宽带无线接入系统需要解决带宽、移动性和覆盖范围

关键字: IPv6 s3c2440 x86 架构

  1 引言   人们生活水平的提高以及科技的进步,特别是计算机技术、网络技术和通信技术的发展,智能家居将慢慢成为未来家居生活的发展方向。1984年在美国诞生了世界上第一座智能家居建筑,

关键字: boa nrf24l01 s3c2440 智能家居

我们知道2440开发流程为:移植uboot--》移植内核---》挂接根文件系统。我们移植完内核需要挂接根文件系统,那么首先我们必须拥有根文件系统。如何来制作我们的根文件系统呢?第一步:在linux下建

关键字: s3c2440 根文件系统

1.TQ2440u-boot-1.1.6修改文件所在的路径是u-boot-1.1.6includeconfigsEmbedSky.h将#defineLCD_TFTxxx(LCD类型)W353.5寸TFT4802724.3...

关键字: s3c2440 lcd参数

2440的晶振频率为12MHZ,有两个PLL:MPLL和UPLL,其中MPLL产生FCLK、HCLK、PCLK;UPLL产生UCLK。FCLK为ARM核提供时钟,HCLK为AHB总线时钟,PCLK为APB总线时钟,UCL...

关键字: s3c2440 时钟初始化

开发板:TQ2440内核:Linux 2.6.32PC OS:Ubuntu 11.041.配置内核打开I2C功能:打开杂项设备,该选项打开后,EEPROM也就打开了。2. 修改代码修改文件: linux/arch/arm...

关键字: at24c02 eeprom s3c2440 移植 linux驱动

在分析ARM-Linux s3c2440中UART的时有必要先了解 s3c2440A中串口的硬件知识。硬件篇:S3c2440A串口提供三个独立的异步串行通信I/O端口(asynchronousserial I/O por...

关键字: ARM Linux s3c2440 uart

s3c2440 cpu的默认工作主频有两种12MHz和16.9344MHz,也就是我们的晶振的频率,但一般12MHz的晶振用的比较多,Fin就是指我们接的晶振频率。大家都知道s3c2440上电正常工作后频率是远远大于12...

关键字: s3c2440 时钟
关闭
关闭