4412裸机程序之按键控制LED
2015-11-14 14:52
435 查看
这1节我们通过按键来控制led,按下按键K1,4个灯全亮,松开全灭。
看一下原理图
K1与XNI26/GPX3_2相连,我们把GPX3_2配置成输入接口,从原理图可以看出当按键断开时XNI26与1.8v电压相连,显示高电平,
当按键按下时XNI26与地相连,显示底电平。这样我们只有读XNI26/GPX3_2状态就可以判断按键是按下还是松开。
代码如下:
//led.c文件
#define GPM4CON (*(volatile unsigned int *)0x110002E0)
#define GPM4DAT (*(volatile unsigned int *)0x110002E4)
#define GPX3CON (*(volatile unsigned int *)0x11000C60)
#define GPX3DAT (*(volatile unsigned int *)0x11000C64)
int main(void)
{
int val;
int i;
/*
* 配置GPM4_0,GPM4_1,GPM4_2,GPM4_3为输出引脚
* 对应LED1/2/3/4
*/
GPM4CON = 0x1111;
/* 设置K1对应的GPIO(GPX3_2)为输入 */
GPX3CON &= ~(0xf << 8); //把[11:8]位清0
while (1)
{
val = GPX3DAT;
/* 读出按键引脚状态 */
if (val & (1<<2)) /* 按键是松开状态 : 高电平 */
{
/* 熄灭对应LED : GPIO输出高电平 */
GPM4DAT |= (15);
}
else
{
/* 否则点亮LED : GPIO输出低电平 */
GPM4DAT &= ~(15);
}
}
return 0;
}
代码位置:https://github.com/cyj1988jyc/luoji4412
看一下原理图
K1与XNI26/GPX3_2相连,我们把GPX3_2配置成输入接口,从原理图可以看出当按键断开时XNI26与1.8v电压相连,显示高电平,
当按键按下时XNI26与地相连,显示底电平。这样我们只有读XNI26/GPX3_2状态就可以判断按键是按下还是松开。
代码如下:
//led.c文件
#define GPM4CON (*(volatile unsigned int *)0x110002E0)
#define GPM4DAT (*(volatile unsigned int *)0x110002E4)
#define GPX3CON (*(volatile unsigned int *)0x11000C60)
#define GPX3DAT (*(volatile unsigned int *)0x11000C64)
int main(void)
{
int val;
int i;
/*
* 配置GPM4_0,GPM4_1,GPM4_2,GPM4_3为输出引脚
* 对应LED1/2/3/4
*/
GPM4CON = 0x1111;
/* 设置K1对应的GPIO(GPX3_2)为输入 */
GPX3CON &= ~(0xf << 8); //把[11:8]位清0
while (1)
{
val = GPX3DAT;
/* 读出按键引脚状态 */
if (val & (1<<2)) /* 按键是松开状态 : 高电平 */
{
/* 熄灭对应LED : GPIO输出高电平 */
GPM4DAT |= (15);
}
else
{
/* 否则点亮LED : GPIO输出低电平 */
GPM4DAT &= ~(15);
}
}
return 0;
}
代码位置:https://github.com/cyj1988jyc/luoji4412
相关文章推荐
- 4412裸机程序之lcd
- 4412裸机程序之IIC
- 4412裸机程序之中断
- 4412裸机程序之mmu
- 4412裸机程序之ddr
- 4412裸机程序之常用gcc/makefile/arm汇编指令
- 4412裸机程序之UART串口
- 4412裸机程序之时钟控制
- View.findViewById() vs Activity.findViewById()
- shell小点
- Xcode 查看手机app沙盒内容
- ARMCortex系列主流的仿真调试器
- plsql+绿色版oracle连接远程数据库配置及提示缺少msvcr71.dll解决方法
- SparkStreaming入门及例子
- Spark修炼之道(基础篇)——Linux大数据开发基础:第五节:vi、vim编辑器(一)
- parquet格式的表用HiveContext写入用Spark thriftserver查不到更新
- IT英文缩写
- 基于nginx的负载均衡
- dojo/dom-class源码学习
- Java语言基础知识