历史上的今天
今天是:2025年01月22日(星期三)
2020年01月22日 | 【ARM】2440裸机系列-gpio按键控制
2020-01-22 来源:eefocus
功能
通过GPIO,实现按键1点亮LED1,按键2点亮LED2……
说明
1)因为2440的按键只涉及行,所以在扫描按键时比2410简单了很多
2)在进行移位操作之前,必须进行数据寄存器的初始化,否则会出错(硬件特性)
源码
/*****************************************************************************
*****函数名:main()
*****功 能:通过GPIO,实现按键1点亮LED1,按键2点亮LED2
*****说 明:
*****************************************************************************/
#include "2440addr.h"
#define clrbit(var, bit) ((var) &= ~(1 << (bit))) //把某一位清0
int main (void)
{
rGPGCON &= (~((3<<22)|(3<<14)|(3<<12)|(3<<10)|(3<<6)|(3<<0))); //设置按键为输入
rGPGUP = 0x0; //GPG上拉使能
rGPBCON &= (~((3<<16)|(3<<14)|(3<<12)|(3<<10)|(3<<0))); //LED1~4输出位清零
rGPBCON |= ((1<<16)|(1<<14)|(1<<12)|(1<<10)|(0<<0)); //设置LED1~4为输出
rGPBUP =0x3ff; //11 1111 1111,GPB上拉禁止
rGPBDAT=0x3ff; //在进行移位操作之前必须进行数据寄存器的初始化
while(1)
{
if(0==(rGPGDAT & (1<<0))) //GPG0
{
clrbit(rGPBDAT, 5); //LED1
}
else if(0==(rGPGDAT & (1<<3))) //GPG3
{
clrbit(rGPBDAT, 6); //LED2
}
else if(0==(rGPGDAT & (1<<5))) //GPG5
{
clrbit(rGPBDAT, 7); //LED3
}
else if(0==(rGPGDAT & (1<<6))) //GPG6
{
clrbit(rGPBDAT, 8); //LED4
}
}
}
下一篇:【ARM】AD转换器
史海拾趣
|
从20世纪30年代开始频率合成技术被人们认识,70多年来,频率合成技术有了较大的发展。频率合成是以一个或几个频率为基础,进行加、减、乘、除四则算术运算,合成出新的频率的一门技术。随着现代通信技术的迅速发展,雷达、宇航和遥控遥测技术的不断 ...… 查看全部问答> |
|
监控系统的接地与防雷接地 监控系统的接地与防雷接地有矛盾么?有!!! 有的防雷器产品厂家明确主张“到处接地”,特别指出摄像机要接地;为了防雷制造了“多点接地”,那地环路问题怎么办? 监控系统的接地要求是:系统(主机)单点接地——摄 ...… 查看全部问答> |
|
原程序只有原版..没有通过IO口选择哪个分之的问题 现在我修改为 用意:现在我的程序P3.6口如果是高电平选择上面程序,,,如果是低电平选择下面程序 总的大程序原来里面多处出现 JMP PAN_END&nb ...… 查看全部问答> |
|
读system_LPC11xx.c,发现点问题,求教高手代码447-449行#if (MEMMAP_SETUP || MEMMAP_INIT) /* Memory Mapping Setup ...… 查看全部问答> |
|
现在想用 2440 通过 2 个硬解码芯片同时播放 2 路音乐; 音乐文件是存放在 2440 主板上的 SD 卡中; 这种芯片最好是可以通过 SPI 接口传输数据的; 因为 2440 包含 2 路 SPI 接口。 不知道有没有做过类似项目的朋友,帮忙推荐一下!… 查看全部问答> |
|
对于linux下的usb蓝牙适配器驱动hci_usb.c中的一些宏(如HCI_RESET)是什么意思? 以下这些宏是什么意思,有何用途? #define HCI_IGNORE 0x01 #define HCI_RESET 0x02 #define HCI_DIGIANSWER 0x04 #define HCI_SNIFFER 0x08 #define HCI_BROKEN_ISOC 0x10 #define HCI_BCM92035 0x20… 查看全部问答> |
|
EVC编写的adodc访问SQLCE数据库的程序如何写到系统镜像中 大家好: 请问,在EVC下写的利用adodc3.0访问SQLCE数据库的程序怎么加到CE系统镜像中呢? adodc和SQLCE要用的动态库我已经加到系统里了,但是通过EVC把程序下载到板子里后,当时是可以运行的,但是重起后,就不行了,提示\"找 ...… 查看全部问答> |




