欢迎来到天天文库
浏览记录
ID:41033099
大小:281.50 KB
页数:4页
时间:2019-08-14
《TQ210裸机编程(3)——按键》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、TQ210裸机编程(3)——按键(查询法)分类: TQ210裸机编程2013-10-1300:59 519人阅读 评论(0) 收藏 举报TQ210嵌入式linux裸机编程S5PV210ARM首先查看TQ210的底板原理图这次编程只操作KEY1和KEY2,在TQ210核心板原理图中搜索XEINT0可以看出KEY1和KEY2分别接在S5PV210的GPH0_0和GPH0_1引脚。这次编程使用查询法,需要设置这两个引脚为输入模式,然后循环读取引脚状态,当用户按下按键时,对应引脚为低电平,同时改变LED状态。查看S5PV
2、210芯片手册start.S[cpp] viewplaincopy1..global _start @声明一个全局的标号 2._start: 3. bl main @跳转到C函数去执行 4.halt: 5. b halt @死循环 key.c[cpp] viewplaincopy1.#define GPC0CON *((volatile unsigned int *)0xE0200060)
3、2.#define GPC0DAT *((volatile unsigned int *)0xE0200064) 3. 4.#define GPH0CON *((volatile unsigned int *)0xE0200C00) 5.#define GPH0DAT *((volatile unsigned int *)0xE0200C04) 6. 7.void delay(volatile unsigned int t) 8.{ 9. volatile unsign
4、ed int t2 = 0xFFFF; 10. while (t--) 11. for (; t2; t2--); 12.} 13. 14.int main() 15.{ 16. int key_val = 0; 17. int bit; 18. GPC0CON &= ~(0xFF << 12); 19. GPC0CON
5、= 0x11 << 12; // 配置GPC0_3和GPC0_4为输出:LED1和LED2 20. 2
6、1. GPH0CON &= ~(0xFF << 0); // 配置GPH0_0和GPH0_1为输入:key1和key2 22. 23. while (1) 24. { 25. key_val = GPH0DAT & 0x3; 26. if (key_val) 27. { 28. delay(500000); // 防抖延时 29. key_val = GPH0DAT & 0x
7、3; 30. 1. if (key_val) 2. { 3. if (0x01 == key_val) // key1 4. GPC0DAT ^= 1 << 3; // toggle LED1 5. else if (0x02 == key_val) // key2 6.
8、 GPC0DAT ^= 1 << 4; // toggle LED2 7. } 8. } 9. } 10. 11. return 0; 12.} Makefile[cpp] viewplaincopy1.key.bin: start.o key.o 2. arm-linux-ld -Ttext 0x20000000 -o key.elf $^ 3. arm-linux-objcopy -O binary key
9、.elf $@ 4. arm-linux-objdump -D key.elf > key.dis 5. 6.key.o : key.c 7. arm-linux-gcc -c $< -o $@ 8.start.o : start.S 9. arm-linux-gcc -c $< -o $@ 10. 11.clean:
此文档下载收益归作者所有