| 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); }
|