Tiny4412之按键驱动

  一:按键驱动

  按键驱动跟之前的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 down\n");
            printf("hello world\n");
            udelay(250000);
        }
        /*key2*/
        if((GPX3DAT & (0x1 << 3)) == 0) {
            printf("key 2 down\n");
            printf("good monig\n");
            udelay(250000);
        }
        /*key3*/
        if((GPX3DAT & (0x1 << 4)) == 0) {
            printf("key 3 down\n");
            printf("welcom key 3\n");
            udelay(250000);
        }
        /*key4*/
        if((GPX3DAT & (0x1 << 5)) == 0) {
            printf("key 4 down\n");
            break;
        }
    }
    printf("Over\n");
    
    return 0; 
}

开发板运行结果如下:

转载于:https://www.cnblogs.com/wenqiang/p/4770845.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值