zoukankan      html  css  js  c++  java
  • 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,你值的拥有哦!

    作者:快乐出发0220 ;Android群:151319601 ; Linux群:96394158 ;转载请注明出处 http://klcf0220.cnblogs.com/ !!!
  • 相关阅读:
    nyoj131 小数相加 循环小时转换分数
    STL 之priority_queue
    XML序列化
    Change the hightlight item color
    TreeView ListView ItemSource
    .NET 下的序列化与反序列化
    WPF: WebBrowser TO Bitmap
    隐藏/显示 Office 标题栏 工具栏 winform webBrowser
    WPF全屏幕窗口
    .Net 注册表操作
  • 原文地址:https://www.cnblogs.com/klcf0220/p/3115542.html
Copyright © 2011-2022 走看看