用c语言把蜂鸣器封装成函数,C语言蜂鸣器问题
C语言蜂鸣器问题
(2012-04-10 04:36:21)
标签:
蜂鸣器
c语言
杂谈
C语言蜂鸣器问题 本帖最后由 mgqw 于 2010-04-13 11:46 编辑
网上查了一些资料,给出了一个很好用的函数控制蜂鸣器,可就是没有说如何关闭蜂鸣器。
int speaker(unsigned int freq,unsigned int delay)
{ static int flag=0,bit;ipv6 socket编程自己连接可以,两台机子连显示拒绝连接
r /> if(flag==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);
}
#include
#include
main()
{
int i;
for(i = 0; i<1; i++)
{
speaker( 2000, 40 );
sleep(2);
}
speaker( 1000, 40 );
}
这个程序如果正常执行完成的话,没有一点问题。
可是如果在执行过程中按ctl+c中断程序的话,蜂鸣器就一直打开着,就一直在哪里叫(在哪里中断退出的就一直保持哪种声音),能把人烦死。
试着用了speaker( 0, 0 )还是有问题,一直发出 “哒哒哒哒哒哒”的声音
请问各位大侠如何将蜂鸣器缓存清零,置为初始化安静状态阿?
网上找了N久都找不到这方面的资料。 本帖最后由 samlumengjun 于 2010-04-13 11:57 编辑
这个要信号处理, 接收到SIGINT的时候做处理
比如,
void *on_terminate( void )
{
close_speaker();
}
main()
{
signal( SIGINT, terminate );
....
}我是用这个做比喻,不一定是收到SIGINT信号,有可能是程序异常退出的话,那蜂鸣器一直在叫,能把人恶心死,除非重启机器。
既然可以设置蜂鸣器,就应该有将蜂鸣器复位清零初始化的方法吧。{:3_190:}没猜错的话, outb(0xfc |
bit,0x61);
就是关闭用的。
你重新写个程序执行这个 本帖最后由 mgqw 于 2010-04-13 14:03 编辑
回复 4# smalloc
应该是你猜错了,我的电脑还是“哒哒哒哒哒哒”想个不停……void Stop( )
{
static int flag=0,bit;
if(flag==0)
{
flag=1;
iopl(3);
}
bit=inb(0x61);
outb(0xfc | bit,0x61);
} 查了下,outb(0xfc ,0x61);
最后2位控制让不让发声。1.临时解决方案http://www.lnroom.com,重启后失效
用ROOT执行命令
#rmmod pcspkr
2.永久生效,需要重启
用ROOT登录
echo "alias pcspkr off"
>> /etc/modprobe.conf查了下,outb(0xfc
,0x61);
最后2位控制让不让发声。
smalloc 发表于 2010-04-13 14:30
http://bbs2.chinaunix.net/images/common/back.gif
这个可以,试了一下“哒哒哒哒”声音终于没有了http://www.4r0y.com/!void Stop( )
{
static int flag=0;
if(flag==0)
{
flag=1;
iopl(3);
}
outb(0xfc ,0x61);
}
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。
用c语言把蜂鸣器封装成函数,C语言蜂鸣器问题相关推荐
- python学习——把计算GC含量的代码封装成函数
把代码封装成函数的好处是可以重复使用该段代码,并且会使代码结构清晰 例如要计算chr1以及chr2染色体的GC含量,代码如下: 1 # 将代码封装为函数并重复使用,例如计算染色体的GC含量 2 chr ...
- c语言中求大于的函数,c语言编写函数,求一组数中大于平均值的数的个数.
C语言编写程序 给定一组数,求大于0,等于0,小于0的数据个数 #define N 10 main(){int num1=0,num2=0,num3=0,i;for(i=0;i 一道C语言题目:求一组 ...
- c语言中输入字符转换成整数,c语言数字字符串转换成整数 C语言中如何将数字变成字符串啊?...
C语言:把数字字符串转换成整型数字不懂时,别乱说:懂得时,别多说:心乱时,慢慢说:没话时,就别说. 运行环境:TC2. 把数字字符串转换成整型数字.比如说小编输入一个数字字符当你年轻时,你以为什么都有 ...
- c语言中调整颜色的函数_C语言中的输入输出函数
点击上方"学士科技",选择"设为星标" 技术干货第一时间送达! 01 字符数据输入输出 字符数据输出函数putchar() C语言中字符数据输出使用的是putc ...
- c语言fscanf读入字符,关于C语言读取文件和fscanf函数-c语言fscanf函数C语言编程语言...
FILE * pFile = fopen(" 1.txt"," r"); //获取指向文件的指针 char * pBuf; //定义文件指针 fseek(pFi ...
- 点按钮ajax get方法修改0或1状态封装成函数
最终效果 列表页面表格里点击按钮修改状态 按钮样式要引入bootstrap才可以用 本文件用的是laravel框架环境 larave路由里 Route::get('category/changesta ...
- php把数组函数封装,PHP删除Array数组里指定的key(完整版,已封装成函数,附测试代码)...
问题背景:array里一般是key---value的存储方式,我们有时候需要删除指定的key及对应的value.但是不知道为啥,那么多帖子都是在讲知道value,并删除该value的事情,差点误导我. ...
- python怎么把程序封装成函数_PYTHON中如何把固定格式代码,封装成一个函数?
图片压缩的太厉害了,看不清楚,代码如下: with open('movies.csv', 'r') as f: reader = csv.reader(f) texts = list(reader) ...
- 树结构遍历节点名字提取,这里提取的是el-tree数据结构,封装成函数
/*** 树形数据提取节点* @param {*} data*/ export function treeDataGetnode (data) {var res = []var child=funct ...
- c语言什么是内联函数,C语言中内联函数inline的使用方法
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 来源一:比特网 来源二:东方锐智 在C++中,为了解决一些频繁调用的小涵数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联涵 ...
最新文章
- 单片机生成随机数的方法总结
- c#知识点——数据库
- 计算机控制zos,第二章zOS操作系统的功能概述2.1zOS的内存管理.PDF
- 如何使用java程序操作ActiveMQ
- History of pruning algorithm development and python implementation(finished)
- 【机器学习】逻辑回归小结
- android学习者优秀网址推荐
- Hibernate的session一级缓存
- python根据文件名列表筛选满足条件的文件
- OpManager12——一个完整的网络管理解决方案
- 苏宁服务器修复,今天下午苏宁服务器突发宕机,官方回应:因系统升级调整
- pip升级及关于pyecharts安装下载所遇到的问题及部分的解决
- Java的在哪里找labor_LaborDay哪里玩
- SpringBoot - OAuth2第三方登录之QQ登录
- vue移动端页面调用手机拍照_vue实现PC端调用摄像头拍照、移动端调用手机前置摄像头人脸录入、及图片旋转矫正、压缩上传base64格式/文件格式...
- Java生鲜电商平台-商品中心的架构设计与源码解析
- 设计模式 -- 状态模式
- 【期末复习】2021-2022南邮网络管理理论与实践复习题
- 【GA算法】遗传算法原理及其Matlab代码
- 4. Linux - 输入子系统框架详解