ºó¾àÇÑ »ç¿îµå ¶óÀ̺귯¸®¸¦
º¸ÃæÇϱâ À§ÇØ ±â´ÉÀ» ÅëÇÕÇÑ
beep() ÇÔ¼ö¸¦ ¼Ò°³ÇÕ´Ï´Ù.
±×¸®°í, Turbo-C 2.0¿¡´Â ²Ï ¸¹Àº
¹ö±×°¡ ÀÖ½À´Ï´Ù.
Delay() ÇÔ¼ö¿¡µµ ¹®Á¦°¡ Àִµ¥,
±× ¹®Á¦Á¡À» º¸¿ÏÇÏ´Â ¹æ¹ýÀ» ¾Æ·¡¿¡ ¼³¸íÇØ
³õ¾Ò½À´Ï´Ù.
void beep(unsigned long hz,unsigned long ti)
/* sound(), delay(), nosound() ÇÔ¼ö¸¦ ÅëÇÕ °³¼±ÇÑ °Í */
/* (hz)HzÀÇ À½À» ti/1000 ÃÊ µ¿¾È Áö¼Ó */
{
unsigned long start;
start=biostime(0,0); /* start¿¡ ½ÃÀÛ ½Ã°£ ±â·Ï */
sound(hz); /* (hz)HzÀÇ ¼Ò¸®¸¦ ¹ß»ý */
while (((biostime(0,0)-start)*10000)<(ti*182)) {};
/* ÁÖ¾îÁø ½Ã°£¸¸Å ±â´Ù¸®´Â ºÎºÐ */
nosound(); /* ¼Ò¸®¹ß»ý ÁßÁö */
}
(¼³¸í)
Turbo-C¿¡¼ À½¾Ç±â´ÉÀ» À§ÇØ ÁغñµÈ ÇÔ¼ö´Â
sound(),
delay(), nosound() 3°³
sound(100); -> 100HzÀÇ ¼Ò¸®¸¦ ½ºÇÇÄ¿¸¦ ÅëÇØ ¹ß»ý
delay(100); -> 100ms (¾à 0.1ÃÊ)¸¦ ±â´Ù¸°´Ù.
* delay()ÇÔ¼öÀÇ ¹®Á¦Á¡ :
1.¿¹¸¦ µé¾î delay(100); ¸í·É¿¡¼ 100msÀÌ»óÀÇ ½Ã°£
¼Ò¿ä.
±× Èķδ Á¦´ë·Î ÀÛµ¿
2.CPU ¼º´É¿¡ µû¶ó Áö¿¬µÇ´Â ½Ã°£ÀÌ ´Ù¸£´Ù.
Áï CPU°¡ ºü¸£¸é Áö¿¬µÇ´Â ½Ã°£ÀÌ ÁÙ¾îµç´Ù.
* ÇØ°áÃ¥ :
1.ÇÁ·Î±×·¥ÀÇ Ã³À½¿¡ delay(0); ¸í·ÉÀ» Çϳª ÁÖ¸é
µÈ´Ù.
ÀÌ ¸í·Éµµ ¾ó¸¶°£ÀÇ ½Ã°£À» Áö¿¬½ÃŲ´Ù.
±×·¡¼ »õ·Î¿î ÇÔ¼ö¸¦ ¸¸µé¾î ¾´´Ù.
while(((biostime(0,0)-start)/18.2)<(ti/1000)) {};
biostime()Àº ½Ã°£À» ÃøÁ¤ÇÏ´Â ÇÔ¼öÀε¥ ¿ì¼± start
º¯¼ö¿¡
±×¶§ÀÇ ½Ã°£ÀÌ ±â·ÏµÇ°í ±× ½Ã°£¿¡¼ ÇöÀç½Ã°£À»
»« °ÍÀÌ
ti º¯¼ö³»¿ë°ú °°À» ¶§±îÁö ¼øÈ¯À» ¹Ýº¹ÇÏ´Â °ÍÀÌ
ÀÌ
ÇÁ·Î±×·¥ÀÇ °ñ°Ý
biostime()¿¡¼ ¾²´Â ´ÜÀ§´Â ÃøÁ¤µÈ ½Ã°£,Áï ÇöÀç
½Ã°£¿¡¼
start¸¦ »« °ÍÀ» 18.2·Î ³ª´©¾î¾ß¸¸ ÃÊ´ÜÀ§·Î µÈ´Ù.
¶Ç ti º¯¼ö·Î ¿À´Â ³»¿ëÀ» ÃÊ´ÜÀ§·Î ¹Ù²Ù¾î ÁÖ±â
À§ÇØ
1000À» ³ª´©¾î ÁÖ¾ú´Ù.
* ÇÁ·Î±×·¥À» ÀÛ°Ô ¸¸µéÀÚ :
´ÙÀ½ µÎ ÁÙÀ» ºñ±³ÇØ º¸ÀÚ.
ù°ÁÙÀº ½Ç¼ö ¿¬»êÀÌ µé¾î°¡´Âµ¥ ºñÇØ µÑ°ÁÙÀº
Á¤¼ö¿¬»ê »ÓÀÌ´Ù.
À̰ÍÀ» ´õ¿í ¸¹ÀÌ ÀÌ¿ëÇÏ¿© ÇÁ·Î±×·¥ ¼ÓÀÇ
³ª´°¼ÀÀ»
Á¤¼ö¿¬»êÀ» ÀÌ¿ëÇÑ ÇÔ¼ö·Î Á÷Á¢ ¸¸µé ¼öµµ ÀÖÀ»
°ÍÀÌ´Ù.
¹°·Ð ½Ç¼ö¿¬»êº¸´Ù´Â Á¤¼ö¿¬»ê ÂÊÀÌ Å©±âµµ
ÀÛ¾ÆÁö°í
¼Óµµµµ ´õ ºü¸£´Ù.
while(((biostime(0,0)-start)/18.2)<(ti/1000)) {}; /* ½Ç¼ö¿¬»ê ÀÌ¿ë */
while (((biostime(0,0)-start)*10000)<(ti*182)) {}; /* Á¤¼ö¿¬»ê¸¸ ÀÌ¿ë */
2.CPU¼º´É¿¡ »ó°ü¾øÀÌ ÀÏÁ¤ÇÑ ½Ã°£À»
Áö¿¬½ÃŰ´Â
ÇÔ¼ö¸¦ »õ·Î Á¦ÀÛ
void wait(unsigned int sec)
/* CPU ¼º´É¿¡ °ü°è¾øÀÌ ÀÏÁ¤ÇÑ ½Ã°£(sec/1000ÃÊ) */
/* µ¿¾È Áö¿¬½ÃŰ´Â ÇÔ¼ö */
/* delay() ÇÔ¼ö´Â CPU¼Óµµ¿¡ µû¶ó Áö¿¬½Ã°£ÀÌ Æ²¸®´Ù. */
{
long clk;
clk=(65536L*(long)sec)/5000L;
while(clk > 0) {
while(inportb(0x61) & 0x10); /* inport(port); port·ÎºÎÅÍ 1¹ÙÀÌÆ®¸¦ ÀоîµéÀδÙ. */
while(!(inportb(0x61) & 0x10));
clk--;
}
}
* °¢ À½°è¿¡ ÇØ´çÇÏ´Â Á֯ļö = 16.35*2^(À½Á¤/12+¿ÁŸºê)
¿ÁŸºê |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
(µµ) C |
16.4 |
32.7 |
65.4 |
130.8 |
261.6 |
523.3 |
1046.5 |
2093.0 |
C# |
17.3 |
34.6 |
69.3 |
138.6 |
277.2 |
554.4 |
1108.7 |
2217.5 |
(·¹) D |
18.4 |
36.7 |
73.4 |
146.8 |
293.7 |
587.3 |
1174.7 |
2349.3 |
D# |
19.4 |
38.9 |
77.8 |
155.6 |
311.1 |
622.3 |
1244.5 |
2489.0 |
(¹Ì) E |
20.6 |
41.2 |
82.4 |
164.8 |
329.6 |
659.3 |
1318.5 |
2637.0 |
(ÆÄ) F |
21.8 |
43.7 |
87.3 |
174.6 |
349.2 |
698.5 |
1396.9 |
2793.8 |
F# |
23.1 |
46.2 |
92.5 |
185.0 |
370.0 |
740.0 |
1480.0 |
2960.0 |
(¼Ö) G |
24.5 |
49.0 |
98.0 |
196.0 |
392.0 |
784.0 |
1568.0 |
3136.0 |
G# |
26.0 |
51.9 |
103.8 |
207.7 |
415.3 |
830.6 |
1661.2 |
3322.5 |
(¶ó) A |
27.5 |
55.0 |
110.0 |
220.0 |
440.0 |
880.0 |
1760.0 |
3520.0 |
A# |
29.1 |
58.3 |
116.5 |
233.1 |
466.2 |
932.3 |
1864.7 |
3729.3 |
(½Ã) B |
30.9 |
61.7 |
123.5 |
246.9 |
493.9 |
987.8 |
1975.5 |
3951.1 |