ARM小键盘、LED、BEEP驱动
来源:互联网 发布:java dao模式 编辑:程序博客网 时间:2024/06/05 09:06
第一次写驱动哦
main.c
#define CPLD_LED(*(volatile unsigned char *)0x20800000)#define GPBCON(*(volatile unsigned int *)0x56000010)#define GPBDAT(*(volatile unsigned int *)0x56000014)#define WTCON(*(volatile unsigned int *)0x53000000)#define GPFCON(*(volatile unsigned int *)0x56000050)#define GPFDAT(*(volatile unsigned int *)0x56000054)#define SEG (*(volatile unsigned char *)0x20800010)int key_init(void){/* GPB8 output */GPBCON |= 1<<16;GPBCON &= ~(1<<17);/* GPB9 output */GPBCON |= 1<<18;GPBCON &= ~(1<<19);return 0;}int key_num(void){/* scan first column */GPBDAT &= ~(1<<8);GPBDAT |= 1<<9;if ((GPFDAT & (1<<0)) == 0)return 1;if((GPFDAT & (1<<2)) == 0)return 3;/* scan second column */GPBDAT |= 1<<8;GPBDAT &= ~(1<<9);if ((GPFDAT & (1<<0)) == 0)return 2;if((GPFDAT & (1<<2)) == 0)return 4;return 0;}int led_on(int num){CPLD_LED |= 1<<num;return 0;}int led_off_all(void){CPLD_LED &= 0x0;return 0;}void beep_on(void){GPBDAT |= 1<<0;}void beep_off(void){GDPDAT &= ~(1<<0);}void seg_show(void){if((GDPDAT &= (1<<0)) == 1){SEG = 0x7f;}else{SEG = 0x3f;}}void my_sleep(void){int i ,j;for(i = 0; i < 100; i++)for(j = 0; j < 1000; j++ )}int Main(void){int key;GPBCON = 0x1;GPBDAT = 0x0;WTCON = 0x0;CPLD_LED = 0xf;key_init();while (1){key = key_num();switch(key){case 1:led_on(0);beep_on();break;case 2:led_on(1);beep_off();break;case 3:led_on(2);beep_on();my_sleep();beep_off();break;case 4:led_on(3);seg_show();break;default:led_off_all();}}return 0;}stat,cAREA swn_test, CODE, READONLY export start import Main start mov sp, #0x0ff bl Main END
- ARM小键盘、LED、BEEP驱动
- ARM之LED驱动
- arm+linux完整Led驱动
- 2.linux arm led驱动
- 纯led驱动-arm平台
- ARM内核驱动—LED驱动程序设计
- arm 裸板驱动入门-LED
- ARM裸板驱动开发之LED驱动
- 4412驱动-beep 蜂鸣器 驱动
- 小键盘TCA8418驱动调试
- ARM+Linux驱动----点亮开发板的LED
- 用查询方式去控制led灯(ARM 驱动开发)
- 基于arm的一个简单的led驱动
- linux驱动开发—beep
- Tq2440 驱动学习(2)-beep驱动
- 设备驱动之四----BEEP驱动
- linux字符设备驱动-------beep驱动
- led驱动
- 解决java虚拟机内存不足的错误 java.lang.OutOfMemoryError: PermGen space 没有文件TOMCAT_HOME/bin/catalina.sh
- jsp基础与应用
- java与c/c++进行socket通信(3)
- 摩尔盛宴的终结?(翻译自ACM Communication 2011年11月刊)
- Ext2那些事儿(一)
- ARM小键盘、LED、BEEP驱动
- 【DP】顺序对齐
- JDK切换版本
- 职责链模式(python)
- Android Google地图上overlay显示位置,路线
- android 为什么需要签名
- 正则表达式
- Android Animations之LayoutAnimationController的使用方法
- JNI入门教程之HelloWorld篇