S5PV210控制蜂鸣器

S5PV210带有一个蜂鸣器,十分吵闹,本章将学习如何控制蜂鸣器。

image

相关引脚:image

蜂鸣器的操作十分简单,原理跟操作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,你值的拥有哦!

posted @ 2013-06-03 15:37  不止所见  阅读(2058)  评论(0编辑  收藏  举报