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编程之给你的程序开后门
这里说的"后门"并不是教你做坏事,而是让你做好事,搭建自己的调试工具更好地进行调试开发.我们都知道,当程序发生异常错误时,我们需要定位到错误,有时我们还想,我们在不修改程序的前提下 ...
随机推荐
- Excel if函数无法正确对比大小
我想完成以下操作 1.提取A列数字的第7-11位的数字 2.若此数字大于1993 3.则返回20,不然返回0 于是我在B和C列上写了两个函数,分别是 MID(A1,7,4) IF(B ...
- CSS各浏览器HACK
/*firefox*/@-moz-document url-prefix(){.mainNews div.l ul{padding-bottom:12px}} /*ie6*/{_padding:2px ...
- python 将html实体转回去
参考资料: http://www.360doc.com/content/17/0620/16/44530822_664927373.shtml https://blog.csdn.net/guzhou ...
- 6 istio 配置 grafana
1 验证prometheus service 已经运行: $ kubectl -n istio-system get svc prometheus NAME CLUSTER-IP EXTERNAL- ...
- Oracle 10 Recycle Bin回收站
这个功能从10g开始有了. (1)什么是Recycle Bin实际上,Recycle Bin只是一个保存被drop的对象的一个数据字典表.所以,可以通过如下语句查询回收站中的信息:select * f ...
- 检测python进程是否存活
crontab -e */ * * * * /data/log_realtime/check.sh > /data/log_realtime/check.log >& * * /d ...
- RESTful基础知识
RESTful简介 互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写.翻译是"表现层状态转化". 如果一个架构符合RES ...
- OD 实验(二十) - 对反调试程序的逆向分析(一)
程序: Keyfile.dat 里的内容 该文件中要至少有 9 个 ReverseMe.A: 运行程序 用 OD 打开该程序,运行 弹出的是错误的对话框 该程序发现 OD 对它的调试,所以该程序对 O ...
- canvas旋转文本
canvas旋转文本 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- C#枚举(enum)、常量(const)和readonly
const修饰的是(类)静态常量,,其值是在编译期间确定的readonly修饰的是动态常量. A.C#中的const和readonly的区别 C#中定义常量有两种方式,一种叫做静态常量,使用“cons ...