Linux编程实现蜂鸣器演奏康定情歌
Linux编程实现蜂鸣器演奏康定情歌
- #include <sys/io.h>
- #include <unistd.h>
- void play(unsigned int* freq, unsigned int* delay);
- main()
- {
- int i;
- unsigned int freq[]={ 330 , 392 , 330 , 294 , 330 , 392 ,
- 330 , 394 , 330 , 330 , 392 , 330 ,
- 294 , 262 , 294 , 330 , 392 , 294 ,
- 262 , 262 , 220 , 196 , 196 , 220 ,
- 262 , 294 , 330 , 262 , 0 } ;
- unsigned int time[]={ 50 , 50 , 50 , 25 , 25 , 50 ,
- 25 , 25 , 100, 50 , 50 , 25 ,
- 25 , 50 , 50 , 25 , 25 , 100,
- 50 , 25 , 25 , 50 , 25 , 25 ,
- 50 , 25 , 25 , 100 };
- unsigned int freq2[]={
- 196,262,262,262,330,294,262,294,330,294,262,
- 330,394,440,440,394,330,330,262,294,262,294,
- 330,294,262,230,230,196,262,440,394,330,330,
- 262,294,262,294,440,394,330,330,394,440,523,
- 394,330,330,262,294,262,294,330,294,262,230,
- 230,196,262,440,394,330,330,262,294,262,294,
- 440,394,330,330,394,440,523,394,330,330,262,
- 294,262,294,330,294,262,230,230,196,262,0
- };
- unsigned int time2[]={
- 25,38,12,25,25,38,12,25,12,12,56,25,25,50,25,
- 38,12,12,12,38,12,25,12,12,38,12,25,25,100,25,
- 38,12,12,12,38,12,25,25,38,12,25,25,100,25,38,
- 12,12,12,38,12,25,12,12,38,12,25,25,100,25,38,
- 12,12,12,38,12,25,25,38,12,25,25,100,25,38,12,
- 12,12,38,12,25,12,12,38,12,25,25,100
- };
- unsigned int freq_alert[]={
- 2000, 2400, 0
- };
- unsigned int time_alert[]={
- 50, 60
- };
- for(i = 0; i < 5; i++)
- {
- play(freq_alert, time_alert);
- }
- play(freq2, time2);
- }
- void play(unsigned int* freq, unsigned int* time)
- {
- int i;
- for(i=0;freq[i]!=0;i++)
- {
- speaker(freq[i], time[i]);
- }
- }
- int speaker(unsigned int freq,unsigned int delay)
- {
- static int flag=0,bit;
- if(fl ag==0)
- {
- flag=1;
- iopl(3);
- }
- outb(0xb6,0x43);
- outb((freq & 0xff), 0x42);
- outb((freq>>8), 0x42);
- bit=inb(0x61);
- outb(3 | bit,0x61);
- usleep(10000*delay);
- outb(0xfc | bit,0x61);
- }
Linux编程实现蜂鸣器演奏康定情歌的更多相关文章
- 牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结 转载
基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...
- 【转】牛人整理分享的面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...
- Linux 编程中的API函数和系统调用的关系【转】
转自:http://blog.chinaunix.net/uid-25968088-id-3426027.html 原文地址:Linux 编程中的API函数和系统调用的关系 作者:up哥小号 API: ...
- linux编程获取本机网络相关参数
getifaddrs()和struct ifaddrs的使用,获取本机IP 博客分类: Linux C编程 ifaddrs结构体定义如下: struct ifaddrs { struct ifad ...
- 面试知识:操作系统、计算机网络、设计模式、Linux编程,数据结构总结
基础篇:操作系统.计算机网络.设计模式 一:操作系统 1. 进程的有哪几种状态,状态转换图,及导致转换的事件. 2. 进程与线程的区别. 3. 进程通信的几种方式. 4. 线程同步几种方式.(一定要会 ...
- Linux编程简介
Linux编程可以分为Shell(如BASH.TCSH.GAWK.Perl.Tcl和Tk等)编程和高级语言(C语言,C++语言,java语言等)编程,Linux程序需要首先转化为低级机器语言即所谓的二 ...
- Linux编程return与exit区别
Linux编程return与exit区别 exit 是用来结束一个程序的执行的,而return只是用来从一个函数中返回. return return 表示从被调函数返回到主调函数继续执行,返回时可附 ...
- linux 编程技术
linux 编程技术No.1前期准备工作 GCC的编译过程分为预处理.生成汇编代码.生成目标代码和链接成可执行文件等4个步骤. 使用vim编写C 文件 : [lining@localhost prog ...
- Linux编程之给你的程序开后门
这里说的"后门"并不是教你做坏事,而是让你做好事,搭建自己的调试工具更好地进行调试开发.我们都知道,当程序发生异常错误时,我们需要定位到错误,有时我们还想,我们在不修改程序的前提下 ...
随机推荐
- 方法 中 void 的解释
- [Java.web][eclipse]经验集
自动提示部分内容来自:http://www.cnblogs.com/mashuangying2016/p/6549991.html 使用 Eclipse 调试 Tomcat 的设置: Window - ...
- 第四章 istio快速入门(快速安装)
4.1 环境介绍 K8s 1.9 以上版本. 4.2 快速部署Istio 下载: https://github.com/istio/istio/releases/, 下载 1.1.0-snapsh ...
- python学习 (三十四) Python文件操作
1 写文件 my_list = ["] my_file = open("myfile.txt", "w") for item in my_list: ...
- 【POJ】2329 Nearest number - 2(搜索)
题目 传送门:QWQ 分析 在dp分类里做的,然而并不会$ O(n^3) $ 的$ dp $,怒写一发搜索. 看起来是$ O(n^4) $,但仔细分析了一下好像还挺靠谱的? poj挂了,没在poj交, ...
- Asp.net mvc validaterequest无效的问题
在普通的asp.net下,可以通过在页面上注明 validateRequest=“false" 这个选项来关闭请求对注入攻击的验证,但在mvc下则不行.而且,在asp.net 4.0下,哪怕 ...
- zabbix agent主动模式与proxy模式,实现公网zabbix监控私网客户机
zabbix agent主动模式,实现公网zabbix监控私网客户机 zabbix_server端当主机数量过多的时候,由Server端去收集数据,Zabbix会出现严重的性能问题,主要表现如下: ...
- Docker垃圾回收机制
由Docker垃圾回收机制引发的一场血案 AlstonWilliams 关注 2017.04.01 19:00* 字数 1398 阅读 253评论 0喜欢 0 今天早晨,在我还没睡醒的时候,我们团队中 ...
- 第一章 : Android Studio 介绍 [Learn Android Studio 汉化教程]
摘自:http://ask.android-studio.org/?/question/789,为便于学习重新整理.. 本章将引导您完成安装和设置开发环境,然后你就可以跟随本书的例子和课程学习. 首先 ...
- CentOS7.6安装Nodejs(Npm)
官网下载地址:https://nodejs.org/en/download/ 第一步:软件下载安装 进行安装目录:cd /opt/software (如果目录不存在,请先创建目录) 下载二进制包:wg ...