Dr. Bit |
Programozzunk együtt!
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.
#include
#include
int 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.)
2001. november 20., kedd 12:48
|
|
|