S3C2440 测试程序(六) LCD显示实验2_触摸小图片切换大图片

发布者:自由思想最新更新时间:2016-12-06 来源: eefocus关键字:S3C2440  LCD显示  图片切换 手机看文章 扫描二维码
随时随地手机看文章

实验效果:
    点击屏幕中的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 = %d\n",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  LCD显示  图片切换 引用地址:S3C2440 测试程序(六) LCD显示实验2_触摸小图片切换大图片

上一篇:S3C2440 测试程序(七) IIC实验1--读写EEPROM(不开中断)
下一篇:S3C2440 测试程序(六) LCD显示实验1

推荐阅读最新更新时间:2024-03-16 15:23

S3C2440地址空间的分配及启动过程
一、S3C2440地址空间的分配 1. s3c2440A 的存储器控制器有以下特性: l 大小端(通过软件选择) l 地址空间:每个bank有128M 的字节(总共1G字节/8个banks) l 可编程的访问位宽,bank0(16/32 位),其他bank(8/16/32 位) l 共8个存储器banks l 6 个是ROM,SRAM 等类型存储器bank l 2 个是可以作为ROM、SRAM、SDRAM 等存储器bank l 7 个固定的存储器bank起始地址 l 最后一个bank 的起始地址可调整 l 最后两个bank 大小可编程 l 所有存储器bank的访问周期可编程 l 总线访问周期可通过插入外部
[单片机]
<font color='red'>S3C2440</font>地址空间的分配及启动过程
LCD显示器与PIC单片机的接口设计
1引言 智能仪器仪表设计中,通常都要对测控信息进行显示。受仪器功耗、体积及其它条件的影响,一般CRT显示器往往不太适用。而半导体数码管,虽能显示数码及少数字母,却无法灵活显示各种文字、图形、表格等,有着较大的局限性。而LCD显示器由于具有功能强、功耗低、显示清晰、构造轻巧等优点,被广泛运用于各类智能仪器仪表的显示。PIC单片机是美国MICROCHIP公司推出的高性能单片机,对比传统MCS51系列单片机,它具有内置功能模块多、抗干扰性好、速度快、功耗低等优点,被广泛应用于工业控制领域 。本文将以SED1520与PIC16F874为例介绍LCD显示器与PIC单片机接口的实用方法。 2 SED1520的结构、指令及其与PIC单片机的
[单片机]
<font color='red'>LCD显示</font>器与PIC单片机的接口设计
04-S3C2440u-boot学习之u-boot分析(3)之源码第1、2阶段
参考《韦东山1期视频》第09课第3节 u-boot分析之源码第1阶段.WMV 一:第一阶段 (1)打开u-boot-1.1.6_JZ2440cpuarm920tstart.S _start: b reset(跳转到reset): 1.设置SVC32 模式; reset: /* * set the cpu to SVC32 mode */ mrs r0,cpsr bic r0,r0,#0x1f orr r0,r0,#0xd3 msr cpsr,r0 2.关看门狗; /* turn off the watchdog */ #if defined(CON
[单片机]
04-S3C2440u-boot学习之u-boot分析(3)之源码第1、2阶段
基于S3C2440的多媒体控制器设计
根据当今移动终端设备多功能、低功耗、易于移植的要求,分别从硬件和软件系统 2 方面提出了一种基于三星μS3C2440 芯片的嵌入式多媒体娱乐控制器的解决方案,同时介绍了利用 CLinux 构造嵌入式系统的方法,并提出了基于MiniGUI开发多媒体娱乐软件的基本方案。通过测试,系统能够满足用户在文字、音视频处理以及常用有线、无线数据交换等多方面的要求。 由于移动通信技术的高速发展,移动电话早已超出原有的进行语音通信的领域,正逐步成为手持娱乐终端的中心。手机用户希望自己的手机在完成通信基本功能的同时还能作为 PDA、MP3 播放器、数码相机、摄像机、视频播放机等。因此,设计出多功能、低功耗的多媒体终端至关重要。ARM+Linux系统
[单片机]
基于<font color='red'>S3C2440</font>的多媒体控制器设计
基于S3C2440芯片和单片机设计压装数据采集系统的设计
引言 随着经济和社会的发展,我国的工业水平和信息技术水平也得到了飞速发展。其中工业中最为常见的零部件组装和装备压装监测设备也得到了不断的改进。压装的过程其实就是按规定的技术要求将零部件进行组培和连接,使之成为半成品或者成品的工艺过程。如图1所示,就是将两个零部件进行过盈无键组装配合,使之牢固结合在一起。工业中很多机械设备都是通过这种压装方式组合到一起的,包括火车轮对、轴承、汽车发动机、变速器、底盘等关键部件。压装的质量决定了以后产品的使用质量和人民的生命财产都息息相关。我们知道压装质量的评判标准,主要是根据压装过程中压力和位移的变化曲线来确定的。而压力位移曲线的获取这就需要由良好的运行稳定的数据采集系统来提供。基于此,本文提出一种
[单片机]
基于<font color='red'>S3C2440</font>芯片和单片机设计压装数据采集系统的设计
S3C2440 Linux驱动移植——NAND驱动
开发板:TQ2440 内核:Linux 2.6.32 PC OS:Ubuntu 11.04 本文将对NAND驱动的移植进行简单介绍。其中,将对NAND控制器所需要的参数进行详细说明。 1. 修改分区表 打开文件arch/arm/plat-s3c24xx/common-smdk.c,修改mtd_partition结构体数组。 修改后如下: static struct mtd_partition smdk_default_nand_part = { = { .name = Uboot , .size = 0x00040000, .offset = 0x00000000,
[单片机]
<font color='red'>S3C2440</font> Linux驱动移植——NAND驱动
05-S3C2440学习之内核(移植)linux3.4.2移植(4)支持LED驱动、按键驱动
一、前面的工作: (1)从头移植3.4.2内核,修改分区,制作jffs2文件系统 http://blog.csdn.net/fengyuwuzu0519/article/details/69802922 (2)修改内核支持yffs2、制作yffs2文件系统、内核裁剪、制作补丁 http://blog.csdn.net/fengyuwuzu0519/article/details/70162666 (3)移植内核支持DM9000C网卡驱动(可以使用mount nfs)、支持三路串口 http://blog.csdn.net/fengyuwuzu0519/article/details/72846205 到此我
[单片机]
05-S3C2440学习之内核(移植)linux3.4.2移植(4)支持LED驱动、按键驱动
S3C2440为核心的嵌入式温室环境监测系统设计
温室生产作为高效、高科技含量的大规模生产方式已经成为世界农业的发展趋势。温室设施的自动监测和控制技术可以为农作物创造良好的生长环境,节约人力成本,提高农作物的产量,因此需要开发与温室相关的自动化技术,以降低运行成本、提高效率、实现环境的精确控制。我国目前的温室没施综合监测水平不高,控制能力比较差,带有综合环境自动调节的高科技温室主要从国外引进。笔者开发了以S3C2 440为核心的嵌入式环境监测系统可以完成温室环境参数的监测和收集,同时通过输出机构实时控制温室环境以达到温室监测和控制智能化的目的,具有精度高,智能控制等优点。 软件工程领域最重要的、具有划时代意义成果之一的就是统一建模语言UML(Unified Modeling
[单片机]
以<font color='red'>S3C2440</font>为核心的嵌入式温室环境监测系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved