历史上的今天
今天是:2024年12月23日(星期一)
2021年12月23日 | Tiny4412之按键驱动
2021-12-23 来源:eefocus
一:按键驱动
按键驱动跟之前的LED,蜂鸣器的方法类似;通过底板,核心板我们可以看到按键的电路图:


通过电路图我们可以看出,当按键按下去为低电平,松开为高电平;所以我们要检测XEINT26的状态,通过芯片手册找到GPX3_2的说明;



有芯片手册可知:GPX3CON为0为检测,GPAC3DAT为1是高电平下面贴出代码:按键KEY1,KEY2,KEY3分别控制输出字符串,KEY4控制退出:
#define GPX3CON (*(volatile unsigned long *)0x11000c60)
#define GPX3DAT (*(volatile unsigned long *)0x11000c64)
int (*printf)(char *, ...) = 0xc3e114d8;
void (*udelay)(int) = 0xc3e25f90;//延时程序
int main()
{
GPX3CON &= ~(0xffff << 8);
while(1) {
/*key1*/
if((GPX3DAT & (0x1 << 2)) == 0) {
printf("key 1 downn");
printf("hello worldn");
udelay(250000);
}
/*key2*/
if((GPX3DAT & (0x1 << 3)) == 0) {
printf("key 2 downn");
printf("good monign");
udelay(250000);
}
/*key3*/
if((GPX3DAT & (0x1 << 4)) == 0) {
printf("key 3 downn");
printf("welcom key 3n");
udelay(250000);
}
/*key4*/
if((GPX3DAT & (0x1 << 5)) == 0) {
printf("key 4 downn");
break;
}
}
printf("Overn");
return 0;
}
开发板运行结果如下:

上一篇:Tiny4412模式跳转
下一篇:Tiny4412MMU内存管理
史海拾趣
|
請問可以同時插兩只CSR的Bluetooth dongle么? 現正在學習BCHS Application Demo,通信時需要兩臺PC,各插一只dongle,很不方便。請問可以在同一臺PC上插兩只dongle么。理論上是完全可行的,而且從設備管理器中也可以找到兩個設備(dongle),但不知道如何與應用程序關聯起來,應用程序只能同時打 ...… 查看全部问答> |
|
几个弱智问题 1 FLASH是多少位的是跟据地址线的根数来确定吗?FOR EXAMPLE? 2 所有NAND FLASH的结构都一样么?都是8根I/O口?那它是几位的? 3 CPU的位数根据什么确定的?地址线?PXA270 32位的,是32根地址线吧? 谢谢。。。!! ...… 查看全部问答> |
|
各位朋友,本人有一些Windows平台的C++开发经验,现在想做嵌入式,自己也有一块ARM的板子,搞过linux的bootloader和内核移植,但是却没有项目可以去学习。本来想去参加培训,可是没有时间。不知哪位朋友现在是否在开发什么项目,能否带小弟一起学习 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:57 编辑 最近本人设计了一款AIR MOUSE+PC遥控器,功能如下: 1. 2.4G无线传输:该产品一发一收,采用2.4G跳频技术以免干扰.传输距离:25米 &n ...… 查看全部问答> |
|
【已解决】【有附件】大家来帮忙看看我的程序哪里错了...弄了好久都 这是小弟的毕业设计,做好了之后,总是在数码管那里出问题,也就是有d,e段不亮,导致2,3,5,6,8,9的显示都看不到...... 弄了好久,刷新频率什么的,数码管的电流什么的都改过也出不了结果,可能是小弟哪里没弄好还是什么,所以上来请 ...… 查看全部问答> |
|
最近发现在uhci控制器(6212)与3G数据卡数据交互大流量时会产生TD stall 错误,之后再插拔设备,uhci(6212)发送IRP请求失败,无法再读取设备信息 请教这可能是什么原因,有方法复位uhci吗? 我用的vxworks usb2.0驱动,在线等 ...… 查看全部问答> |




