S5PV210按键控制LED

原理图如图所示:

image

查询用户手册得到:

image

image

 

程序例子:(完整代码见“代码下载链接”)

1、轮询的方式查询按键事件
/*main.c*/
核心代码如下:
while(1)
{
dat = GPH2DAT;
if(dat & (1<<0)) // KEY1被按下,则LED1亮,否则LED1灭
GPJ2DAT |= 1<<0; // OFF
else
GPJ2DAT &= ~(1<<0); // ON
if(dat & (1<<1)) // KEY2被按下,则LED2亮,否则LED2灭
GPJ2DAT |= 1<<1;
else
GPJ2DAT &= ~(1<<1);
if(dat & (1<<2)) // KEY3被按下,则LED3亮,否则LED3灭
GPJ2DAT |= (1<<2);
else
GPJ2DAT &= ~(1<<2);
if(dat & (1<<3)) // KEY4被按下,则LED4亮,否则LED4灭
GPJ2DAT |= 1<<3;
else
GPJ2DAT &= ~(1<<3);
}
程序很简单,首先配置GPJ2_0/1/2/3引脚为输出功能以及配置GPH2_0/1/2/3引脚为输入功能,然后使用轮询的方式不断的读GPH2_0/1/2/3引脚的值,当检测到某个按键被按下时,即对应的引脚为低,此时我们点亮对应的LED,否者让LED保持熄灭的状态。
用查询的方式来检测按键太占CPU使用率了,除了检测按键,CPU无法进行其他工作,后面学习中断的知识后,我们将改用中断的方式来检测按键中断,这将大大降低CPU的使用率。

 

代码下载链接:http://download.csdn.net/detail/klcf0220/5635159

 

喜欢开源,乐意分享的大神们,欢迎加入QQ群:176507146,你值的拥有哦!

posted @   不止所见  阅读(700)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)
点击右上角即可分享
微信分享提示