S5PV210控制蜂鸣器
S5PV210带有一个蜂鸣器,十分吵闹,本章将学习如何控制蜂鸣器。
蜂鸣器的操作十分简单,原理跟操作LED一样,通过控制GPDO_O这个引脚就可以达到控制蜂鸣器的目的。
1. start.S
start.S做了下面3件事:
第一步 关看门狗;
第二步 设置栈,以便调用C函数;
第三步 调用main函数;
2. buzzer.c
完整代码如下:
/*buzzer.c*/
#define GPD0CON (*(volatile unsigned long *)0xE02000A0) #define GPD0DAT (*(volatile unsigned long *)0xE02000A4) // 初始化buzzer void buzzer_init(void) { GPD0CON |= 1<<0; } void buzzer_on(void) { GPD0DAT |= 1<<0; } void buzzer_off(void) { GPD0DAT &= ~(1<<0); }
函数buzzer_init()配置GPIO引脚,使GPD0_0用于输入功能;
函数buzzer_on()使引脚GPD0_0输出0,蜂鸣器响;
函数buzzer_off()使引脚GPD0_0输出1,蜂鸣器不响;
3. main.c
在main.c中,首先会调用buzzer_init()来初始化蜂鸣器,然后通过一个while循环不断的控制蜂鸣器的运行和停止。
4.Makefile
/*Makefile*/
buzzer.bin: start.o main.o buzzer.o arm-linux-ld -Ttext 0x0 -o buzzer.elf $^ arm-linux-objcopy -O binary buzzer.elf buzzer.bin arm-linux-objdump -D buzzer.elf > buzzer_elf.dis %.o : %.S arm-linux-gcc -o $@ $< -c %.o : %.c arm-linux-gcc -o $@ $< -c clean: rm *.o *.elf *.bin *.dis *.exe -f
代码下载链接:http://download.csdn.net/detail/klcf0220/5508555
喜欢开源,乐意分享的大神们,欢迎加入QQ群:176507146,你值的拥有哦!
作者:快乐出发0220 ;Android群:151319601 ; Linux群:96394158 ;转载请注明出处 http://klcf0220.cnblogs.com/ !!!