Rovat: Dr. Bit
2001. november 20., kedd 12:48
|
Programozzunk együtt! A beépített hangszóró
A beépített hangszóró A PC-kben általában van egy kis hangszóró - beépítve a házba. Ennek kezelését a "dos.h"-ban lévő "sound()", és "nosound()" utasításokkal vezérelhatjük - hogy melyik mit csinál, az szerintem elég egyértelmű... Nos, a következő példában nem teszünk mást, mint ezeket + a "delay()"-t (=várakkozás x ezredmásodpercig) használjuk. A "voice_delay[]" tömb tartalmazza a frekvenciát és az utána következő várakozási időt - ha ez nulla, akkor a program kilép. A progi amúgy a "Yankee Doodle"-t játsza le. #includeint voice_delay[]={ 262, 6, 262, 6, 293, 6, 329, 6, 262, 6, 329, 6, 293, 6, 196, 6, 262, 6, 262, 6, 293, 6, 329, 6, 262, 12, 262, 12, 262, 6, 262, 6, 293, 6, 329, 6, 349, 6, 329, 6, 293, 6, 262, 6, 246, 6, 196, 6, 220, 6, 246, 6, 262, 12, 262, 12, 220, 6, 246, 6, 220, 6, 174, 6, 220, 6, 246, 6, 262, 6, 220, 6, 196, 6, 220, 6, 196, 6, 174, 6, 164, 6, 174, 6, 196, 7, 220, 6, 246, 6, 220, 6, 174, 6, 220, 6, 246, 6, 262, 6, 220, 7, 196, 6, 262, 6, 246, 6, 293, 6, 262, 12, 262, 12, 0, 0 }; void main(void)
{
int counter=0;
int voice, wait;
cprintf("Playing 'Yankee Doodle' - Press any key to exit!");
voice=voice_delay[counter];
wait=voice_delay[counter+1];
do
{
sound(voice);
delay(wait);
counter++;
voice=voice_delay[counter];
wait=voice_delay[counter+1];
}
while(voice!=0 && !kbhit());
nosound();
}
(A program ötletét és a "Yankee Doodle" hangsorozatát az Agárgi Gábor: Gyakorlati Assembly c. könyvéből vettem és írtam át C-re.) |