【ARM】2440裸机系列-图片显示

发布者:代码漫游者最新更新时间:2020-01-22 来源: eefocus关键字:ARM  2440裸机系列  图片显示 手机看文章 扫描二维码
随时随地手机看文章

功能

LCD显示字汉字,字符和图片


说明

汉字,字符和图片需要用相应的取模软件得到相应的c文件,然后包含到工程中


主要代码

1)绘制背景

1
2
3
4
5
6
7
8
9
10
11
void Brush_ U32  c)
{
    int x,y ;
    for( y = 0 ; y < LCD_HEIGHT ; y++ )
    {
        for( x = 0 ; x < LCD_WIDTH ; x++ )
        {
            LCD_BUFFER[y][x] = c ;
        }
    }
}

2)文字绘制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
void Draw_Text16(U32 x,U32 y,U32 color,const unsigned char ch[])
{
    unsigned short int i,j;
    unsigned char mask,buffer;
    for(i=0;i<16;i++)
    {
        mask=0x80;                       //掩码
        buffer=ch[i*2];                  //提取一行的第一个字节
        for(j=0;j<8;j++)
        {             
            if(buffer&mask)
            {
                PutPixel(x+j,y+i,color); //为笔画上色
            }
            mask=mask>>1;             
        }
        mask=0x80;                      //掩码
        buffer=ch[i*2+1];                //提取一行的第二个字节
        for(j=0;j<8;j++)
        {             
            if(buffer&mask)
            {
                PutPixel(x+j+8,y+i,color); //为笔画上色
            }
            mask=mask>>1;             
        }
    }
}

3)字符绘制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void Draw_ASCII(U32 x,U32 y,U32 color,const unsigned char ch[])
{
    unsigned short int i,j;
    unsigned char mask,buffer;
    for(i=0;i<16;i++)
    {
        mask=0x80;
        buffer=ch[i];
        for(j=0;j<8;j++)
        {             
            if(buffer&mask)
            {
                PutPixel(x+j,y+i,color);
            }
            mask=mask>>1;             
        }
    }
}

4)图片绘制

<注意>用取模软件对图片进行取模后得到的c源文件中,需要自己进行define WIN32,否则图片颜色是反过来的

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void Paint_Bmp(int x0,int y0,int h,int l,const unsigned char bmp[])
{
    int x,y;
    U32 c;
    int p = 0;
                                                      
    for( y = y0 ; y < l ; y++ )
    {
        for( x = x0 ; x < h ; x++ )
        {
            c = bmp[p+1] | (bmp[p]<<8) ;
            if ( ( (x0+x) < LCD_WIDTH) && ( (y0+y) < LCD_HEIGHT) )
                 LCD_BUFFER[y0+y][x0+x] = c ;
                                                              
            p = p + 2 ;
        }
    }
}

效果

关键字:ARM  2440裸机系列  图片显示 引用地址:【ARM】2440裸机系列-图片显示

上一篇:【ARM】2410裸机系列-流水灯
下一篇:【ARM】2440裸机系列-RTC数字时钟

推荐阅读最新更新时间:2024-11-11 08:15

ARM基础知识教程(六): ARM映像文件
1.ELF格式文件的结构 1.1映像文件组成部分 **一个映像文件有一个或多个域组成 **每个域包含一个或多个输出段 **每个输出段包含一个或多个输入段 **各输入段中包含了目标文件中的代码和数据 输入段中包含了四类内容:代码、已经初始化的数据、未经初始化的存储区域、内容初始化成0的存储区域。每个输入段有相应的属性,可以为只读的(RO)、可读写的(RW)以及初始化成0的(ZI)。ARM连接器根据个输入段的属性将这些输入段分组,再组成不同的输出段及域。 一个输出段中包含了一系列的具有相同的RO、RW和ZI属性的输入段。输出段的属性与其中包含的输入段的属性相同。在一个输出段的内部,各输入段是按照一定的规则排序的,这将在1.3节
[单片机]
Arduino 回应嵌入式系统 Mbed 终止支持影响:已找到替代方案,年底前发布首个测试版
7 月 26 日消息,Arm 公司于 7 月 9 日发布公告, 宣布将于 2026 年 7 月终止支持开源嵌入式操作系统 Mbed OS ,后续不再继续维护,届时 Mbed 网站将被存档,并且将无法通过在线工具构建项目。 这则消息在嵌入式开发社区引起广泛讨论,影响 Arm 支持的项目(如 micro:bit、Arduino 和 Raspberry Pi)。 Arduino 公司于 7 月 24 日发布博文,表示几年前就开始寻找替代解决方案,因此于 2023 年加入 Zephyr 项目,并成为该项目银牌成员,并在 ZephyrOS 中找到了一个很好的替代品。 Arduino 公司为了让用户能够继续使用其熟悉的语言和库,就需要在
[嵌入式]
Arduino 回应嵌入式系统 Mbed 终止支持影响:已找到替代方案,年底前发布首个测试版
ARM处理器架构-----协处理器
ARM指令集-协处理器指令详解 ARM可支持多达16个协处理器,主要的作用:ARM处理器初始化,ARM与协处理器的数据处理操作,ARM的寄存器与协处理器的寄存器之间传送数据,以及ARM协处理器的寄存器和存储器之间传送数据。共有5条: -CDP 协处理器数据操作指令 -LDC 协处理器数据加载指令 -STC 协处理器数据存储指令 -MCR ARM的寄存器到协处理器的寄存器的数据传送 -MRC 协处理器的寄存器到ARM的寄存器的数据传送 1、CDP 指令 CDP 指令的格式为: CDP{条件} 协处理器编码,协处理器操作码1,目的寄存器,源寄存器1,源寄存器2,协处理器操作码2。
[单片机]
ARM与51编写程序的区别
测试环境:KEIL (1) int变量 在51 占2个字节;在ARM占4个字节 (2)结构体对齐 在51是按照一个字节对齐; 在ARM是按结构体默认对齐规则对齐 (3)字节在内存的排列顺序 在51是大端 ; 在ARM大多数是小端,但有的可以大小端选择。 在大端存储格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中 在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节 (大端,小端的堆栈方向不同,大端是向上生长,小端是向下生长)所以大端初始化的SP往往是地址低端,而小端初始化的SP往往是地址高端 (4)函数体中的局部变量,在C51中存放
[单片机]
Ubuntu下Eclipse搭建ARM开发环境
第一步:安装JRE 和 Eclipse 详细步骤请参考:http://blog.csdn.net/ex_net/article/details/7251664 第二步:安装 arm -linux-gcc 和 arm-linux-g++ (1)复制 arm-linux- gcc -4.3.2.tgz 到 /home/tools 目录下,然后解压缩到 根目录下 / # tar -xvzf arm-linux-gcc-4.3.2.tgz -C / (2)修改环境变量 # gedit /etc/environment 向该配置文件加
[单片机]
Ubuntu下Eclipse搭建<font color='red'>ARM</font>开发环境
Arm推出全新显示解决方案,提升用户体验新境界
Arm今日宣布 推出 全新显示解决方案,其中包含Mali-D71显示处理器、CoreLink MMU-600和Assertive Display 5。新显示解决方案以Arm IP为 开发基础,提升设备效能,并采用智能解决方案应对所有来自显示技术的挑战。 Arm计算产品事业群营销总监Ian Hutchinson表示,“Arm在显示技术领域有着丰富的发展历史。2013年,Arm通过并购成立了现在的显示IP产品线,随后,第一代显示处理器IP接踵而至。2016年,我们发布了Mali-DP650并完成了Apical的并购,将Assertive Display纳入产品阵营。为了应对显示技术在虚拟现实, 高动态范围, 多窗口模式以及众多面
[家用电子]
<font color='red'>Arm</font>推出全新<font color='red'>显示</font>解决方案,提升用户体验新境界
s3c2440 ARM9 裸机驱动第二篇—2440系统时钟
一、硬件部分: 1.时钟树: 2440的系统时钟是由MPLL和UPLL来设置的,MPLL用于设置FCLK、HCLK、PLCK。UPLL主要用于USB。 FCLK用于CPU核,HCLK用于AHB总线,PCLK用于APB总线。 2.寄存器: 对于2440,有如下寄存器 LOCKTIME、MPLLCON、UPLLCON、CLKCON、CLKSLOW、CLKDIVN、CAMDIVN。 其中:LOCKTIME用于设置locktime,默认值即可,可以不用配置 MPLLCON用于设置FCLK UPLLCON用于设置USB时钟 CLKCON用于控制外设时钟开启或者关闭,默认都打开。 CLKDIVN、
[单片机]
s3c<font color='red'>2440</font> <font color='red'>ARM</font>9 <font color='red'>裸机</font>驱动第二篇—<font color='red'>2440</font>系统时钟
低成本ARM 32位MCU,开发人员面临的两种选择
要使用低成本的32位微控制器,开发人员面临两种选择,基于Cortex-M3内核或者ARM7TDMI内核的处理器。如何做出选择?选择标准又是什么?本文主要介绍了ARM Cortex-M3内核微控制器区别于ARM7的一些特点,帮助您快速选择。 1.ARM实现方法 ARM Cortex-M3是一种基于ARM V7架构的最新ARM嵌入式内核,它采用哈佛结构,使用分离的指令和数据总线(冯诺伊曼结构下,数据和指令共用一条总线)。从本质上来说,哈佛结构在物理上更为复杂,但是处理速度明显加快。根据摩尔定理,复杂性并不是一件非常重要的事,而吞吐量的增加却极具价值。 ARM公司对Cortex-M3的定位是:向专业嵌入式市场提供低成本、低功
[单片机]
热门资源推荐
热门放大器推荐
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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