CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Linux/Unix社区 >  程序开发区

linux下用什么函数来控制蜂鸣器的发声??

楼主newtrain(新手)2006-03-11 15:06:19 在 Linux/Unix社区 / 程序开发区 提问

我在linux下用qt进行界面的编写,需要使蜂鸣器发声音,应该怎样做呢,是不是有相应的函数可以进行调用,请各位达人帮忙啊 问题点数:30、回复次数:3Top

1 楼fierygnu(va_list)回复于 2006-03-11 15:26:32 得分 15

QApplication::beepTop

2 楼newtrain(新手)回复于 2006-03-12 11:10:27 得分 0

用这个函数可以控制蜂鸣的时间长短么?Top

3 楼x86(大雪)回复于 2006-03-14 11:26:03 得分 15

可以直接写端口,代码如下:  
   
  #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(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);  
  }  
  Top

相关问题

  • 请问怎么使蜂鸣器发声
  • 请问怎样才能监视 蜂鸣器 是否发声?
  • 求发声函数?
  • 请问winform程序如何控制蜂鸣器并使之发声?
  • 使PC喇叭发声的API函数
  • 98下用什么发声函数指定频率和时间?
  • 怎么让蜂鸣器beep?
  • Linux下clone函数问题
  • Linux下的函数库
  • 如何用程序控制声卡发声,用什么函数,UP有分

关键词

  • 函数
  • freq
  • unsigned int

得分解答快速导航

  • 帖主:newtrain
  • fierygnu
  • x86

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo