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,你值的拥有哦!

你可能感兴趣的:(pv)