如何用CVI控制电脑的蜂鸣器发出声音啊?
我编程的时候想在特定的情况下控制蜂鸣器发出"滴,滴"的警报声,不知怎么实现,我用过Beep();以及MessageBeep(UINT type);函数,都不管用,不知大家有何高招啊,请多赐教,谢谢了. CVI中的Beep()函数(不是Windows API中的)就可以实现(我试过!)。看来你首先得看看你的电脑的喇叭是否完好?或者声卡驱动是否安装了? CVI中的Beep()函数控制蜂鸣器远远不如API中的函数:
bool Beep(int frequency, int duration); 可以了,我在网上找了些资料,写了一个函数,如下:
int speaker(int freq,double delay)
{
static int flag=0,bit,f=0;
if(flag==0)
{
flag=1;
//iopl(3);
}
outp(0x43,0xb6);
outp(0x42,(freq & 0xff));
outp(0x42,(freq & 0x8) );//这里一行,楼上的代码是一个表情符号,所以我是猜的,发现去掉的话也没关系
bit=inp(0x61);
outp(0x61,3 | bit);
Delay(delay);
outp(0x61,0xfc | bit);
//Delay(delay);
//f=1-f;
//if(f)
//outp(0x61,'\a');
outp(0x61,0);
return 0;
}
在调用时我用的参数是:speaker(523, 20); 楼上的大哥,恕我愚钝,这玩意怎么结束啊?一响就结束不了。 cvi的资料就是少呀
页:
[1]