历史上的今天
返回首页

历史上的今天

今天是:2025年05月13日(星期二)

正在发生

2020年05月13日 | mini2440按键裸机程序编写运行

2020-05-13 来源:eefocus

开发环境

操作系统:linux

开发板:mini2440

2.原理图

image.png?imageView2/2/w/550

GPGCON控制寄存器地址:


GPGCON控制寄存器功能说明:



3. 操作流程

(只需要操作GPGCON寄存器即可操作K1按键)

a)设置控制寄存器GPGCON为输入功能:00

(即:可读取GPGDAT寄存器的值)


//按键  

unsigned long *GPGCON = 0x56000060;  

unsigned long *GPGDAT = 0x56000064;  

  

*GPGCON &= 0xffffc33c;//只用到4个按键GPG0 GPG3 GPG5 GPG6,功能设为00:输入功能  


b)我们按下按键,想让对应的LED1——4,对应点亮,那么LED设置如下:

//LED  

unsigned long *GPBCON = 0x56000010;  

unsigned long *GPBDAT = 0x56000014;  

*GPBCON &= 0xfffc03ff;    //功能设置:输出功能 01  

*GPBCON |= 0x00015400;  

  

//1110 0001 1111  

*GPBDAT &= 0xfffffe1f;  

*GPBDAT |= (0xf<<5);//LED全灭  


c)代码如下:

void key(void)  

{  

    //按键  

    unsigned long *GPGCON = 0x56000060;   

    unsigned long *GPGDAT = 0x56000064;  

  

    //     1100 0011 0011 1100  

    //     c      3    3   c  

    *GPGCON &= 0xffffc33c;//只用到4个按键GPG0 GPG3 GPG5 GPG6,功能设为00:输入功能  

       

    //LED  

        unsigned long *GPBCON = 0x56000010;  

        unsigned long *GPBDAT = 0x56000014;  

        *GPBCON &= 0xfffc03ff;  

        *GPBCON |= 0x00015400;  

  

    //1110 0001 1111  

        *GPBDAT &= 0xfffffe1f;  

    *GPBDAT |= (0xf<<5);//全亮  

      

    int i;  

    int n;  

    for(i = 0; i<5; i++)  

    {  

        *GPBDAT &= 0xfffffe1f;  

        for(n = 0; n <0x100000;n++);  

        *GPBDAT |= (0Xf<<5);  

        for(n = 0; n<0x100000;n++);  

    }  

  

    while(1)  

    {  

        if((*GPGDAT & (1)) == 0)  

        {  

            *GPBDAT &= ~(1<<5);  

  

        }  

        else  

        {  

            *GPBDAT |= (1<<5);  

  

        }     

                if((*GPGDAT & (1<<3)) == 0)  

                {  

                        *GPBDAT &= ~(1<<6);  

                }  

                else  

                {         

                        *GPBDAT |= (1<<6);  

                }  

                if((*GPGDAT & (1<<5)) == 0)  

                {  

                        *GPBDAT &= ~(1<<7);  

                }  

                else  

                {         

                        *GPBDAT |= (1<<7);  

                }  

                if((*GPGDAT & (1<<6)) == 0)  

                {  

                        *GPBDAT &= ~(1<<8);  

                }  

                else  

                {         

                        *GPBDAT |= (1<<8);  

                }  

    }  

}  


d)Makefile文件:

key_test.bin:key_test  

    arm-linux-objcopy -O binary ./key_test key_test.bin  

key_test:key_test.o  

    arm-linux-ld -Ttext=0x30000000 key_test.o -o key_test  

key_test.o:key_test.c  

    arm-linux-gcc -c key_test.c -o key_test.o  

.PHONY:clear copy  

clear:  

    rm -rf key_test.o key_test key_test.bin  

copy:  

    cp key_test.bin /var/lib/tftpboot/  

推荐阅读

史海拾趣

成都成电硅海公司的发展小趣事

成都成电硅海公司自2009年成立以来,就以其独特的技术创新能力在电子行业中崭露头角。公司创始人李德全深谙半导体行业的技术趋势,带领团队攻克了一个又一个技术难题。在成立初期,公司就成功研发出一款高性能的硅基材料,这一创新不仅打破了国外企业的技术垄断,还为公司赢得了市场的初步认可。

HANBIT Electronics公司的发展小趣事

在电子行业中,产品质量是企业生存和发展的关键。成都成电硅海公司深知这一点,因此在生产过程中严格把控每一个环节。公司引进了先进的生产设备和技术,建立了完善的质量检测体系。每一批产品出厂前都要经过严格的质量检测,确保产品性能的稳定和可靠。这种对品质的执着追求,使得成都成电硅海公司的产品在市场上赢得了良好的口碑。

Gulf Semiconductor公司的发展小趣事

在电子行业中,知识产权的保护尤为重要。成都成电硅海公司非常重视知识产权的申请和保护工作。公司成立了专门的知识产权部门,负责专利、商标等知识产权的申请和管理。同时,公司还积极参与各种知识产权的维权行动,维护自身的合法权益。这种对知识产权的重视和保护,不仅提升了公司的核心竞争力,也为公司在电子行业的发展提供了有力的法律保障。

General Transistor Corp公司的发展小趣事

在1976年,GTC(General Transistor Corp.)作为一家独立的电子元器件分销商和生产商在美国正式成立。这一时期,电子行业正处于快速发展阶段,晶体管、集成电路等新型电子元件的应用日益广泛。GTC凭借其敏锐的市场洞察力和技术实力,迅速在市场中站稳脚跟。公司初期专注于分销高质量的晶体管、二极管等电子元器件,并逐渐建立起稳定的供应链和客户群。

峰岹(Fortior Tech )公司的发展小趣事

随着技术的不断进步,GTC意识到仅仅作为分销商已无法满足市场需求。于是,公司开始逐步涉足电子元器件的生产领域,专注于研发和生产具有自主知识产权的产品。通过持续的技术创新和研发投入,GTC成功推出了一系列高性能的晶体管、集成电路等新产品,进一步丰富了其产品线。这些产品不仅在国内市场受到好评,还逐渐走向国际市场。

Global Mixed-Mode Technology Inc公司的发展小趣事
三相缺相报警灯电路的工作原理基于三相电的平衡性。当三相电中的任意一相缺失时,会导致电路不平衡,从而触发报警机制。通常,该电路会使用中间继电器或专门的缺相检测芯片来监测三相电的电压情况。一旦检测到缺相,就会通过继电器或芯片的控制,使报警灯亮起或发出声音警报,以提醒用户及时处理。

问答坊 | AI 解惑

毕业设计制作的小车机器人!

1。寻线 2。寻光 3。机器人之间无线数传用以协同完成任务 4。红外蔽障 5。超声波蔽障 6。串口摄像头 7。自制光电码盘测速…

查看全部问答>

中移动Ophone手机主界面曝光 5月底正式发布

本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 5月11日消息,据中国移动相关人士透露,5月中下旬中移动将正式公开发布采用OMS手机操作系统(Open mobile system)的Ophone手机。这将意味着中国自主研发的OMS手机操作系统将正式走上前台,向 ...…

查看全部问答>

实时嵌入式操作系统uCOS_II在AT91上的移植

【摘 要】 介绍了嵌入式实时操作系统uCO S2II 的特点和内核结构, 并通过对A TM EL 公司A T 91M 55800A 的体系结构的分析, 讨论了移植的可能性, 同时提出了移植过程中出现的问题及解决的方法, 最终通过设计多 任务的应用程序证实了移植的成功L…

查看全部问答>

硬件仿真

想问一下支持硬件仿真的单片机芯片都有哪些  谢谢…

查看全部问答>

寻找PDA无线点菜系统,或者开发人员

寻找PDA无线点菜系统,或开发人员,qq: 5521201 ,谢谢。…

查看全部问答>

ATMEL系列

原装正品:ATMEGA8A-8AU     2010+ATMEGA8L-8AU     2010+ ATMEGA8L-8PU     2010+ ATMEGA8A-PU      2010+ATMEGA16L-8PU    2010+ATMEGA32 ...…

查看全部问答>

WINCE6.0操作系统在三星6410开发板上完美展现!--基于立宇泰ARMSYS6410开发板

精彩测评实例图片说明:1,WINCE6.0系统启动画面(进度条动态显示内核加载进程,LOGO图片可以根据客户需要免费更换);2,WINCE6.0桌面效果;3,800x480液晶屏全屏播放H.264视频流文件(采用硬件解码)4,800x480液晶屏全屏播放MPEG4(avi后缀)音视 ...…

查看全部问答>

我UCOS项目任务优先级划分问题

我在做同步相量测量(PMU) 就是把AD采集的三项交流电压和电流值打上时标然后上传,在接收PC发送的控制命令,如控制继电器开关的命令。由于要对数据打时标(时间戳),底层的PMU采集装置散布在不同的点,每一个点(PMU)安装一个GPS 不现实 ...…

查看全部问答>

AVR编程软件

我的电脑是64位机,系统是win7的家庭普通版,买电脑觉得送了个win7的正版系统,就没在升旗舰了。 现在在学AVR单片机,老师需要我给编一些程序,但是下了很多相关编程软件,就是用不了(比如CVAVR,ICCAVR). 很困惑,求大神指点!!! 谢谢…

查看全部问答>

最近想搞一搞STM32的F4系列的MCU,在此求一块F4 Discovery的板子

本帖最后由 bobde163 于 2014-5-24 22:34 编辑 这两天我手头上的一个Jlink坏了,本来是用来调试STM32F103的板子的,不知道是操作系统的原因还是怎么的,使用出了点问题,在电脑开机之后,第一次插入Jlink,可以通过Jlink Commandr程序查看相关信 ...…

查看全部问答>