S3C2440-GPIO之button
2016-03-30 20:50
330 查看
这是非中断模式的按键读取,没有防抖。
读取一个引脚的值就是读取CONXDAT的相应位置。
且mini2440的按键按下是低电平,
读取一个引脚的值就是读取CONXDAT的相应位置。
且mini2440的按键按下是低电平,
/* time:2016-03-30, change:创建文件,GPIO.c GPIO.h auther:wxc */ #include <S3C2440.H> #define uint_8 unsigned char #define uint_32 unsigned int #define GPIO volatile unsigned long* #define OUT 1 #define IN 0 #define false 0 #define true 1 /* 功能: 参数: 返回: */ /* 功能:延时函数 参数:延时时间 返回:无 */ void delay_ms(uint_32 time) { int j= 5000; for(;time>0;time--) { for(;j>0;j--) ; } } /* 功能:设置引脚方向 参数:GPx引脚类型,con 引脚方向,flag引脚值 返回:是否设置成功 */ int GPIO_CON(GPIO GPx,int con,int flag) { if(flag<0||flag>16) { return false; } *GPx |= con<<(flag*2); return true; } /* 功能:获取引脚值 参数:GPx引脚类型,flag引脚值 返回:返回数据 */ int getGPIO_DAT(GPIO GPx,int flag) { unsigned long dwdat; dwdat = *GPx; return dwdat&(1<<flag); } /* 功能:设置引脚值 参数:GPx引脚类型,con引脚值,flag引脚位置 返回:设置成功 */ int setGPIO_DAT(GPIO GPx,int con,int flag) { if(con>2) { return false; } if(con == OUT) *GPx |= (1<<flag); else *GPx = (*GPx&~(1<<flag)); return true; } /* 功能:设置多个引脚值 参数:GPx引脚类型,con引脚值,start引脚位置1,stop引脚位置2 返回:设置成功 */ int setGPIO_Mulit_DAT(GPIO GPx,int con,int start,int stop) { int i=0; for(i=start;i<=stop;i++) { setGPIO_DAT(GPx,con,i); } return true; } //点个灯玩玩 int main() { int ledIndex = 5; int bool=0; bool = GPIO_CON(&GPBCON,OUT,5); bool = GPIO_CON(&GPBCON,OUT,6); bool = GPIO_CON(&GPBCON,OUT,7); bool = GPIO_CON(&GPBCON,OUT,8); bool = GPIO_CON(&GPGCON,IN,3); // GPBCON = GPB5_out; while(1) { if(!getGPIO_DAT(&GPGDAT,3)) { setGPIO_Mulit_DAT(&GPBDAT,IN,5,8); } bool = setGPIO_DAT(&GPBDAT,0,ledIndex); delay_ms(100000); bool = setGPIO_DAT(&GPBDAT,1,ledIndex); // setGPIO_DAT(GPBCON,0,ledIndex); delay_ms(100000); if(ledIndex++>8) { ledIndex = 5; } } return false; }
相关文章推荐
- 实用代码片段--Javascript
- 一种适合创业公司的技术架构方案
- 二维数组和arraycopy
- hdu 1217 Arbitrage 最短路 floyd+map容器
- 杭电1032
- 扣丁学堂笔记第16天SQLite数据库
- IT行业导览-4.3-数据分析师
- JNI/NDK开发指南(一)—— JNI开发流程及HelloWorld
- ZOJ2539 Energy Minimization(最小割)
- Shiro Quartz之Junit測试Session管理
- Python Select 解析
- [JAVA · 初级]:13.接口
- UVALIVE 4329(树状数组)
- bloom filter 算法
- css如何控制div完全居中
- 记录阿里云ECS服务器Java开发环境的搭建过程
- 拆分字符串,GetHtmlByWebBrowser,UnicodeToMBCS,提升进程权限
- Java 的枚举(Enums) 可以实现接口(Interfaces)
- hdu3790
- Textview超链接实现方式总结