ãšã³ããªãŒ
ååã®èšäºã§ããã€ã¯ãã³ã³ãããŒã©ãŒã®ã¯ããã¯åšæ³¢æ°ã®èšå®ã«ã€ããŠèª¬æããŸããã 次ã«ããµãŠã³ããæäœããããã®ãªãã·ã§ã³ãã€ãŸãçæãšåçãæ€èšããããšæããŸãã æåã¯ããã¹ãŠãèæ
®ããã1ã€ã®å€§ããªèšäºãæžããããšæããŸããã ç©åœ¢ãã«ã¹ã®çæãããmicroSDã«ãŒãããã®FLACã®åçãŸã§ã ãããããã®èšäºã¯å·šå€§ãªãã®ã§ããã ããã§ãç§ã¯ãããããã€ãã®å°ããªèšäºã«åå²ããããšã«ããŸããã ããããã§ã1ã€ã®åšèŸºã¢ãžã¥ãŒã«ãå解ããŸãã
èšäºã®ã¿ã¹ã¯ã®å®è£
ãæ°ã«å
¥ããªã人åããããã«äºçŽããŸãã ãã§ã«è¿°ã¹ãç¥èã®å©ããåããŠã®ã¿ãèšäºã§æèµ·ãããåé¡ã解決ããŸãã DMAãã©ããã§ãã¿ã€ããŒãã©ããã§ããªã©ã䜿çšããæ¹ãçå®ã§ããããšãç解ããŠããŸãã ããããããã¯ãã¹ãŠåŸã§æ€èšãããŸãã
åçŽãªãµãŠã³ãçææ¹æ³ã®äžè¬çãªã¢ã€ãã¢ã
ãã®èšäºãæžããŸã§ã¯ãé³ãã©ã®ããã«çæããããã«ã€ããŠæŒ ç¶ãšããèããããããŸããã§ãããã
ãã®èšäºãèªãã åŸããã¹ãŠãé©åã«é
眮ãããŸããã äžèšã®èšäºãããæãéèŠãªããšãåºå¥ããããšãã§ããŸã-ååã
é³ãäœæããã«ã¯ãã¹ããŒã«ãŒã®èãç¹å®ã®åšæ³¢æ°ã§æ¯åãããå¿
èŠããããŸãã åé³ã«ã¯åºæã®åšæ³¢æ°ããããŸããããšãã°ãæ倧1ãªã¯ã¿ãŒãã®é³ã¯ã261Hzã®åšæ³¢æ°ã«å¯Ÿå¿ããŸãã ã€ãŸã ã¹ããŒã«ãŒã«æ¥ç¶ããããã€ã¯ãã³ã³ãããŒã©ãŒã®è¶³ãæ¯ç§261åã®é床ã§ããããããããšããã®é³ãèãããŸãã é³æ¥œçè«ãèŠæãªäººã«ãšã£ãŠã¯ã1 kHz以äžã«è¿ãé³ã»ã©ããã¿ã300 Hzæªæºã§ã¯äœé³ã«ãªããŸãã
ããŒãã«ã¯ããžã£ãã¯3.5ã³ãã¯ã¿ãšãã®ããã®ã¢ã³ãããããŸãã åè·¯å³ãæ€èšããŠãã ããã
ã芧ã®ãšãããã¢ã³ãã¯PE0ãã³ãä»ããŠã³ã³ãããŒã©ãŒã«æ¥ç¶ãããŠããŸãã ããŒãã®ãDAC_OUT_SELããžã£ã³ããŒãåãæ¿ããåŸãããšãã°ããããã©ã³ããžã£ãã¯ã«æ¥ç¶ããããšã§èãããé³ãçæã§ããŸãã
ã·ã³ãã«ãªãã¥ã€ãŒã¿ãŒã®å®çŸ
çè«ã«åºã¥ããŠãæåã®ãªã¯ã¿ãŒããŸã§ã®ããŒãã®é »åºŠã§ãããããã°ã©ã ãæžãããšãã§ããŸãã
ãã³ãèšå®ããŸãã ããŒãã«ã¯ã¢ã³ã以å€ã¯äœããªããšããä¿®æ£ãå ããŠã³ãŒããèšè¿°ãããŠããããšã«ããã«åæããŸãã ãã®åŸãæ®éçãªæ©èœãäœãããšã¯é£ãããããŸããã
次ã«ããããããé »åºŠã決å®ããå¿
èŠããããŸãã
ãã®åšæ³¢æ°è¡šã¯ããã§ç§ãå©ããŸããã ããããããããããã«ã以äžã«ç€ºããŸãã
æåã®ãªã¯ã¿ãŒãã®ïŒCïŒã®åã®é³ã®åšæ³¢æ°ã¯261.63ãã«ãã§ãã ããã¯ã1ç§éã«261.63æéãçµéããããšãæå³ããŸãã ããããããããã®ç¶æ
ã2åå€æŽããŸãã ãããŠããããã®ç¶æ
ãæ¯ç§523.26åå€æŽããå¿
èŠããããŸãã 1ç§ã523.26ã§å²ããš0.0019110958223445ã«ãªããŸããããã¯ãããã191 * 10 ^ïŒ-5ïŒç§ã«çžåœããŸãã ããã¯ãåãæ¿ãéã®ãäžæåæ¢ãã§ãã
é
延ã®ããããã®å€ãããã£ãã®ã§ãSysTickã¿ã€ããŒãšããã«é
延ãèšå®ã§ããŸãã 10 ^ïŒ-5ïŒç§ããšã«äžæããããã«èšå®ããå¿
èŠããããŸãã ãããè¡ãã«ã¯ã
ãã®èšäºã®é¢æ°ãå°ãå€æŽããŸãã 以äžãåŸãããŸãã
void Init_SysTick (void)
ããŠãæåŸã«ãäžèšã®ãã¹ãŠã䜿çšããŸãã
int main (void) { Buzzer_out_init();
ãã¹ãŠãããŸããããŸãããããã«æåã®çæããããŸãã ãæ°ã¥ããããããŸããããã¡ã€ã³é¢æ°ã«ã¯ã¯ããã¯ãèšå®ããããã®ã³ãŒãè¡ããããŸããã ã³ã³ãããŒã©ã¯HSIããã¯ããã¯ãããŸãã ãã®äŸã§ã¯ãããã«ãããæåã®ãªã¯ã¿ãŒããžã®ããŒãã®ä»£ããã«ãå°ããªãªã¯ã¿ãŒãïŒ2ããŒã³å
šäœïŒã®ããŒããåçãããŸãã ãã®ãšã©ãŒãä¿®æ£ããã«ã¯ãã¯ããã¯ãœãŒã¹ãHSIããHSEïŒå€éšæ°Žæ¶æ¯ååïŒã«åãæ¿ããæ©èœãè¿œå ããŸãã
ã¿ã€ãã³ã°ã·ã¹ãã ã¯
ãã®ã¬ãã¹ã³ã§èª¬æã
ããŸãã ã
int main (void) { HSE_Clock_ON();
ã¿ã¹ã¯ãå°ãè€éã«ããŸãããã 12åã®ããŒãããŒã³ïŒãã¢ããèŠããšã7åã®çœéµãš5åã®é»éµïŒãåçããããã°ã©ã ãäœæããŸãã ãããè¡ãã«ã¯ããã¹ãŠã®é
延ã®ç¶ç¶æéã§é
åãäœæããŸãã åã®ãã®ãšåãæ¹æ³ã§ããããèšç®ããŸãïŒ100000 / frequency_notes / 2 = duration_delayã 0.00001ç§ïŒ10 ^ïŒ-5ïŒïŒããšã«å²ã蟌ã¿ãããããã100000ãåå²ããŸãã
const uint32_t MES[13] = {191, 180, 170, 161, 152, 143, 135, 128, 120, 114, 107, 101, 96};
ããã§ã¯ãã¡ã€ã³é¢æ°ãå°ãå€æŽããŸãããã
int main (void) { HSE_Clock_ON();
ã³ãŒãã®ç°¡åãªèª¬æã åé³ã®ãµã³ãã«é³ã®é·ãïŒé³æ³¢ã®1åšæïŒãç°ãªããããåé³ã®é³ãã»ãŒåãã«ããããã«ãåŸ
æ©ãµã€ã¯ã«ã¯æ¬¡ã®ããã«æ§æãããŸããã æãé·ãé³ç¬ŠïŒé
延æ°ã倧ããé³ç¬ŠïŒã®æ°ã¯ãæçã§ãé
延æéãã«èãããŸããã 説æããŸãã æåã®ãªã¯ã¿ãŒãïŒ191ïŒã®åã®é³ç¬Šã¯96 * 3åæŒå¥ããã2çªç®ã®ãªã¯ã¿ãŒãïŒ96ïŒã®åã®é³ç¬Šã¯191å* 3åæŒå¥ãããŸããã 次ã«ãé
延ã枬å®ããããæ£ç¢ºãªæ¹æ³ãæ€èšããŸãã
ãããç§ãã¡ã®æ³¢ã®ããã§ãã
ããèŠããšããã®äžå®å
šããããããŸãã ç©åœ¢ã®ã€ã³ãã«ã¹ã«éåžžã«ãã䌌ãŠããŸããã
ãããžã§ã¯ããšãçµæãšããŠåŸãããgithubã®ãµãŠã³ããã¡ã€ã« ã
DACãã¹ã¿ãªã³ã°
ç§ãã¡ã®ãæ³¢ãã®ãã¿ãŒã³ã調ã¹ãŠã¿ããšãæ£åŒŠæ³¢ãããããšããããããŸããã ãã€ã¯ãã³ã³ãããŒã©ã§æ£åŒŠæ³¢ãšäžè¬çã«ãããã圢ç¶ã®ä¿¡å·ãäœæããåé¡ãç 究ããŠã
ãã®èšäºã«åºäŒããŸããã ãã®èšäºã¯ç§ã«é·ãéåºããããŸããã ãããŠãç§ã¯ãã 楜ãã¿ã®ããã«ãããèªã¿ãŸããã ä»ã§ã¯å®çšçãªé¢å¿äºã§ãã ãã®èšäºã§ã¯ãã·ã³ãã«ãªDACïŒããžã¿ã«-ã¢ããã°ã³ã³ããŒã¿ãŒïŒã®äœæãšäœ¿çšã«ã€ããŠèª¬æããŸãã DACã¯ãé»å§å€ãçŽæ¥ã¢ããã°åºåé»å§ã«å€æããããã€ã¹ã§ãã ãã§ã«èšäºããå³ãåéãããã£ãã®ã§ãããããäžåºŠããã¥ã¡ã³ãã調ã¹ãŠããã€ã³ããèŠã€ããŸããã
MDR_DACã³ã³ãããŒã©ãŒ...................... 326
ããã¯ç§ã«ãšã£ãŠéåžžã«å¬ããé©ãã§ããã ãã€ã¯ãã³ã³ãããŒã©èªäœã«DACãçŽæ¥èŠãããšããããŸããã ãã ããæåã«DACãã¢ã³ãã«æ¥ç¶ã§ãããã©ãããç解ããå¿
èŠããããŸãã ãããè¡ãã«ã¯ãåè·¯åºæ¿ãéãã次ãåç
§ããŠãã ããã
ã¢ã³ãã®åºåã¯ãDACãæ¥ç¶ãããŠããPE0ã«çŽæ¥æ¥ç¶ãããŠããŸãã çŽ æŽãããã ã»ããã¢ãããéå§ã§ããŸãã ãããããã®åã«ãDACã«ã€ããŠå°ãå匷ããŸãã
ãã€ã¯ãã³ã³ãããŒã©ãŒã«ã¯2ã€ã®DACããããŸãã DACãæå¹ã«ããã«ã¯ãCfg_ON_DACxãããã1ã«èšå®ããããŒãEã®äœ¿çšãããŠããDACãã³ãã¢ããã°ãšããŠæ§æããå
éšãã¬ãŒã¹ãç¡å¹ã«ããå¿
èŠããããŸãã äž¡æ¹ã®DACã¯ç¬ç«ããŠããŸãã¯å
±åã§åäœã§ããŸãã DACã®ç¬ç«åäœäžïŒãããCfg_SYNC_A = 0ïŒãããŒã¿ãDACx_DATAããŒã¿ã¬ãžã¹ã¿ã«æžã蟌ãŸããåŸãèšé²ãããå€ã«å¯Ÿå¿ããé»å§ã¬ãã«ãDACx_OUTã®åºåã«åœ¢æãããŸãã åæåäœäžïŒãããCfg_SYNC_A = 1ïŒãäž¡æ¹ã®DACã®ããŒã¿ã¯ãDACx_DATAã¬ãžã¹ã¿ã®1ã€ã®1ã€ã®ã¬ã³ãŒãã§æŽæ°ã§ããŸãã DACã¯å
éšãµããŒãCfg_M_REFx = 0ã§åäœã§ããDACã¯0ãé»æºé»å§AUCCã®ç¯å²ã®åºåä¿¡å·ãçæããŸãã å€éšãµããŒãCfg_M_REFx = 1ã®åäœã¢ãŒãã§ã¯ãDACã¯0ããå€DACx_REFã®ç¯å²ã®åºåé»å§ãçæããŸãã
ããã§ã¯ãã»ããã¢ããå
šäœãèšè¿°ãããŠãããšèšããŸãã ã¬ãžã¹ã¿ãèŠãŠãã ããã
ããã«ã¯ã2ã€ã®DACã«å¯ŸããŠ3ã€ã®ã¬ãžã¹ã¿ãããããŸããã ãããã®ãã¡ãåDACã®åºåå€ãä¿åããããã®2ã€ã®ã¬ãžã¹ã¿ã ã±ãŒã¹ã®èšå®ãæ€èšããŠãã ããã
ã»ããã¢ãããå§ããŸãããã ãŸããDACã¯ãããã³ã°ã«ã€ããŠãå¿ããªãã§ãã ããã ããŠããã¹ãã®ããã«ãåºåã«æ倧é»å§ãèšå®ããŸããïŒ0xFFF = 4095ïŒã
ããã«ãåºå£ã«ã€ããŠãå¿ããŸããã åã®ã¬ãã¹ã³ã§ã¯ãããžã¿ã«åºåãšããŠæ§æããŸããã 次ã«ãæšå¥šäºé
ã«åŸã£ãŠãã¢ããã°ãšããŠæ§æããå¿
èŠããããŸãã
void Buzzer_out_DAC_init (void) { RST_CLK->PER_CLOCK |= PER_CLOCK_PORTE;
ããŠãããããã¹ãŠãã¡ã€ã³é¢æ°ã«è¿œå ããŠãã ããã
int main (void) { HSE_Clock_ON();
ããã§ããã³ã®é»å§ã枬å®ãããšãçŽ3ãã«ãã«ãªãã¯ãã§ãã ãããã ããã¯èµ·ããŠããŸããã ãã³ã«ã¯ãçŽ0.08ãã«ãããããŸãã è¯ããªããã®ã æŽçããŸãããã ãŸããDACãã«ãã»ã«åãããŠãããã©ããã確èªããŸããã ãããã¬ãŒã¯ããã¹ãŠã®ã¬ãžã¹ã¿ãæ£ããå
¥åãããããšãå ±åããŸãã 次ã«ããã³ããŒãã«ã調ã¹ãããšã«ããŸãããã次ã®ããšãããããŸããã
ããã«ãã¥ãŒã¹ããããŸãã PE0ã¯DAC1ã§ã¯ãªãDAC2ã«æ¥ç¶ãããŠããŸãïŒ ããã«å¥ã®ééãããããŸã... DACã®æ©èœãå€æŽããŸãã
å®è¡ããããšããŠããŸãã ä»ã§ã¯ãã¹ãŠãé 調ã§ãã åºåã¯3.28ãã«ãã§ãã ããŠãç°¡åãªãã€ãŒã¿ãŒã®äŸã«åŸã£ãŠãç©åœ¢ãã«ã¹ã§é³ãçæããŠã¿ãŸãããã ãããè¡ãã«ã¯ãåã®ãããžã§ã¯ãã®ã³ãŒãããããã«å€æŽããŸãã
const uint32_t MES[13] = {191, 180, 170, 161, 152, 143, 135, 128, 120, 114, 107, 101, 96}; int main (void) { HSE_Clock_ON();
çŽç²ã«ãé³ã¯åã®äŸããããã£ãšããæãã§ãã ã¯ããããã¯ã¯ããã«å€§ããèãããŸãã
githubã®ãããžã§ã¯ããšãµãŠã³ããã¡ã€ã« ã
ãããŠãããã§ãæ¯èŒã®ããã«ãç§ãã¡ã®æ³¢ã
äœè«ïŒããŒãäžã®ã¢ã³ãã¯éåžžã«é«æž©ã§ãã ãã®ã¢ãŒãã§10åéæŸçœ®ãããšãçã«å€ãããŸãããã®ãããé³ãèããåŸããžã£ã³ããŒããªãã«ããŸãã ãã®ãããç±ããªããŸããã
æ£åŒŠæ³¢ã®çæã
ããŸããŸãªã¬ãã«ã®åºåã§é»å§ãçæããæ¹æ³ãç解ããã®ã§ããã®é»å§ã®å€ãã©ãã§ååŸããã®ãçåã«æããŸããã æåéããæ€çŽ¢ã®éå§çŽåŸã«ã
ãã®èšäºã«åºäŒããŸããã ãã®äžã§ãç§ã¯æãéèŠãªãã®ãèŠã€ããŸããã æ£åŒŠæ³¢å€ãååŸããããã®ã³ãŒãã ã³ãŒããå°ãå€æŽããŠãæ³¢é·ãšãµã³ãã«åšæ³¢æ°ãèŠæ±ããã³ãŒãã®é»å§å€ã®é
åãçæããããã°ã©ã ãåŸãŸããã
githubã®Pascal ABCã®ã³ãŒãã次ã«ç€ºããŸã ïŒãã¹ãŠåãã§ãããè©Šéšã®æºåãå¿
èŠã§ãããPascalã§èšè¿°ããããšããããŸãïŒã
Program Sin_wav; Var Real_Data, PR: double;
å°ã説æããŸãã æ£åŒŠæ³¢ã¯æ£ãšè² ã®äž¡æ¹ã®å€ãåãããšãã§ããŸãã DACã¯æ£é»å§ã®ã¿ãçæã§ããŸãã 倧ãŸãã«èšãã°ãå€åã¯é»å§ã®å€åã«ãããã®ãªã®ã§ã0ã¯DACã®å解èœã®ååã«ãªããšå€æããŸããã ã€ãŸãã2047 = 0ã2045 = -2ã2049 = 2ã§ããåèšæ¯å¹
ã¯4095ã§ãïŒ0ããã¢ã«ãŠã³ããä¿æããå ŽåïŒã 以äžã¯ãæåã®ãªã¯ã¿ãŒããŸã§ã®é³ã®æ£åŒŠæ³¢ãçæããã³ãŒãã®å®è¡äŸã§ãïŒè¡šã«ãããšãæ³¢ã®åšæ³¢æ°ã¯261.63ãã«ãã§ãïŒã ãã®æ£åŒŠæ³¢ã100åã®ã»ã¯ã·ã§ã³ã«åå²ããŸãã
ïŒCïŒæåã®ãªã¯ã¿ãŒãã100ã»ã¯ã·ã§ã³ã«æ³šæããŠãã ããã : 100 : 261.63 : C_4 const uint16_t C_4[100] = {2047, 2176, 2304, 2431, 2556, 2680, 2801, 2919, 3033, 3144, 3250, 3352, 3448, 3539, 3624, 3703, 3775, 3841, 3899, 3950, 3994, 4030, 4058, 4078, 4090, 4094, 4090, 4078, 4058, 4030, 3994, 3950, 3899, 3841, 3775, 3703, 3624, 3539, 3448, 3352, 3250, 3144, 3033, 2919, 2801, 2680, 2556, 2431, 2304, 2176, 2047, 1918, 1790, 1663, 1538, 1414, 1293, 1175, 1061, 950, 844, 742, 646, 555, 470, 391, 319, 253, 195, 144, 100, 64, 36, 16, 4, 0, 4, 16, 36, 64, 100, 144, 195, 253, 319, 391, 470, 555, 646, 742, 844, 950, 1061, 1175, 1293, 1414, 1538, 1663, 1790, 1918};
ãµã€ã³æ³¢å®éšã
100åã«åå²ãããæ£åŒŠæ³¢ãåãåã£ãåŸããã®æ£åŒŠæ³¢ã¯261.63ãã«ãã®åšæ³¢æ°ã§å€±ãããªããã°ãªããªãããšãæãåºããŠãã ããã å²ã蟌ã¿ééãèšç®ããŸãããã ç§/ïŒ100ããŒã* 261ã63ïŒ= 0.00003822191ç§ã ããã ããã«èšããŸãã ç§ã¯é³ãåŸãããã«å®éšã®æµ·ãå®æœããŸããã ãããã«ã€ããŠç°¡åã«èª¬æããŸãã 8 MHzã®åšæ³¢æ°ã¯æããã«ãã®ãããªé床ã«ã¯ååã§ã¯ãªãã£ãã®ã§ãç§ã¯èªåèªèº«ãæ±ãããšã決ãããããã80 MHzã«ãªãŒããŒã¯ããã¯ããããã§ééããªãååã§ããããšãæåŸ
ããŸããã ããããããã«ã¯ãããŸããã§ããã SysTickã®å²ã蟌ã¿ã1ç§ããã10,000,000åäžæãããšãã³ã³ãããŒã©ãŒã¯ããŒã¿ã衚瀺ããããµã€ã¯ã«ã«å°éããããšããã§ããŸããã§ããã ãã®åŸãå²ã蟌ã¿ã§ããã«ããŒã¿ãåºåããæ¹ããã£ãšç°¡åã ãšå€æããŸããã 次ã®ããšãå€æããŸããã
void Init_SysTick (void)
äž»ãªæ©èœã¯æ¬¡ã®ãšããã§ãã
int main (void) { HSE_Clock_ON();
é³ã¯æ¬¡ã®ãšããã§ãã
ããèŠããšæ¬¡ã®ããšãããããŸãã
ãæ£åŒŠæ³¢ãã®ãããã®å¢å ã¯æ¬¡ã®ãšããã§ãã
倧ããªãšã©ãŒã衚瀺ãããŸãã ãŸããé³ã¯éåžžã«äœãã£ãã ãã¶ãå°ããªãªã¯ã¿ãŒãã®ããã«ã é«ããªãã ããã¯ãå²ã蟌ã¿å
ã®ã³ãŒãã«å®è¡ããæéããªãããšã瀺ããŠããŸãã 80 MHzã®åšæ³¢æ°ã§ãã ç§ãã¡ã¯ç°ãªã£ãè¡åãããŸãã å質ãå°ãäžããŸãã äžæãããå°ãå°ãªãããŸãããã ãããŠãå²ã蟌ã¿ã®åŸ
æ©ãµã€ã¯ã«ãäžå·¡ããŸãã 以äžãåŸãããŸãã
void Init_SysTick (void)
ããã§ãå²ã蟌ã¿ãåŠçãããããã«ãªããŸããã é³ç¬Šãšã»ãŒåãé³ãããŸãã ããããããã§ãè³ã§ïŒãã¢ããšæ¯èŒããå ŽåïŒäžæ£ç¢ºããèãããšãã§ããŸãã
githubã®ãããžã§ã¯ããã¡ã€ã«ãšãµãŠã³ããã¡ã€ã«ã
é³æ³¢ã®åœ¢åŒã¯æ¬¡ã®ãšããã§ãã
ãæ£åŒŠæ³¢ãã®ç«ã¡äžããã¯æ¬¡ã®åœ¢åŒã«ãªããŸãã
ã芧ã®ãšããã100åã®ããŒãã«ã¯æå³ããããŸããã DACã«ã¯ãé»å§ãå€æŽããæéããããŸããã ïŒç 究ã®æç¹ã§ç§ã«ã¯æãããïŒãµã€ã³æ³¢ã20ã®éšåã§æ§æãããããã«ãããžã§ã¯ããå€æŽããã 次ã®é
åãååŸããŸãã
: 20 : 261.63 : C_4 const uint16_t C_4[20] = {2047, 2680, 3250, 3703, 3994, 4094, 3994, 3703, 3250, 2680, 2047, 1414, 844, 391, 100, 0, 100, 391, 844, 1414};
ããã§å²ã蟌ã¿é »åºŠãèšç®ããŸãã ç§/ïŒ20éš* 261.63ïŒ= 0.00019110958ç§ã191 * 10 ^ïŒ-6ïŒã ããã¯ä»¥åãããåªããŠããŸãã å²ã蟌ã¿ãšé
延ãæ§æããŸãã 以äžãåŸãããŸãã
void Init_SysTick (void)
Doã«ããã«è¿ããµãŠã³ããåŸãããŸããã ãµãŠã³ããã¡ã€ã«ã¯ãäžèšã®ãªã³ã¯ã®ãããžã§ã¯ãã§ãå
¥æã§ããŸãã
æ³¢ãèŠãŠãã ããïŒ
é©ããããšã«ãç®ã®åã«ã¯åã³ã»ãŒé·æ¹åœ¢ã®è¡åããããŸãïŒ æ£åŒŠæ³¢ããã£ãã¯ãã§ããã ã©ããã§ééããããŸãã...ãã§ããæ¯åã®æ¯å¹
ãå°ãããããã©ããªãã®ïŒããšæããŸããã ãã¹ã«ã«ã®ããã°ã©ã ã®ãã©ã¡ãŒã¿ãŒãå€æŽãã2047幎ãã1500幎ã«ãæ³¢é«ããã0ããããå¶éãã«è¡šç€ºããŸãããããããããã¯äœã«ãã€ãªãããŸããã§ããã ãããŠãããã°ã©ã ã¡ãã¥ãŒãããã«è©³ããèŠãŠãèŠãŸããã
-1ãã«ããã1ãã«ããŸã§ïŒ ã€ãŸããæ¯å¹
ã¯2ãã«ãã§ãïŒ ãããŠã3 +ã®ã¢ã³ãããããŸããïŒ ã¢ã³ãã®ããã¥ã¡ã³ããæ¢ãã®ãé¢åã ã£ãã®ã§ãéžæããããšã§çæ³çãªæ¯å¹
ã¯70 * 2ã§ããããšãããããŸããã
Program Sin_wav; Var Real_Data, PR: double;
ãããè¯ãé
åã§ãïŒ
const uint16_t C_4[20] = {2047, 2069, 2088, 2104, 2114, 2117, 2114, 2104, 2088, 2069, 2047, 2025, 2006, 1990, 1980, 1977, 1980, 1990, 2006, 2025};
ä»ãç§ãã¡ã®ä¿¡å·ãèŠãŠã¿ãŸãããïŒäžèšã®ãªã³ã¯ã®githubã§ãé³å£°é²é³ãå¯èœã§ãïŒã æåŸã«æ£åŒŠæ³¢ã®ãããªãã®ïŒ
20ããŒãã®æ£åŒŠæ³¢ãäœæã§ããã®ã§ãåè¿°ã®ã³ãŒãã䜿çšããŠ100ããŒãã®æ£åŒŠæ³¢ãäœæããŸãã çµæã®é
åã¯æ¬¡ã®ãšããã§ãã
: 100 : 261.63 : C_4 const uint16_t C_4[100] = {2047, 2051, 2056, 2060, 2064, 2069, 2073, 2077, 2081, 2085, 2088, 2092, 2095, 2098, 2101, 2104, 2106, 2108, 2110, 2112, 2114, 2115, 2116, 2116, 2117, 2117, 2117, 2116, 2116, 2115, 2114, 2112, 2110, 2108, 2106, 2104, 2101, 2098, 2095, 2092, 2088, 2085, 2081, 2077, 2073, 2069, 2064, 2060, 2056, 2051, 2047, 2043, 2038, 2034, 2030, 2025, 2021, 2017, 2013, 2009, 2006, 2002, 1999, 1996, 1993, 1990, 1988, 1986, 1984, 1982, 1980, 1979, 1978, 1978, 1977, 1977, 1977, 1978, 1978, 1979, 1980, 1982, 1984, 1986, 1988, 1990, 1993, 1996, 1999, 2002, 2006, 2009, 2013, 2017, 2021, 2025, 2030, 2034, 2038, 2043};
å€ãã³ãŒãã䜿çšããŠé
åã眮ãæãããããååŸããŸãã
éåžžã«é«å質ã®æ£åŒŠæ³¢ãåŸãããŸããïŒ
githubã®ãããžã§ã¯ãã³ãŒããšãªãŒãã£ãªã
åæ
çãªäœè«
æ¯å¹
ã3ãã«ããè¶
ãããµãŠã³ããé²é³ãããšãåãã©ããããããµãŠã³ãã«ãŒãã«æ¥ç¶ãããã¹ããŒã«ãŒã«ãããã€ã¹ãããããã«å€æŽããããµãŠã³ããçŸããŸããã æåã¯ãããã¯ã°ã©ãŠã³ãããã°ã©ã ããªã³ã«ãªã£ãããã ãšæããŸããã ããããæ¯å¹
ãå°ããããããšãç§ã«æ¥ããšããã«ãããã§ã¯ãªãããšã«æ°ä»ããŸããã é³ããªããªã£ãŠããã®ã§ã ããå°ãçã£ãŠããµãŠã³ãã«ãŒããçŒãããšæããŸãã
é³å£°ã®é²é³ãšåæã«ã¯ãå®å
šã«ç¡æã®ããã°ã©ã
Audacityã䜿çšããŸããã ããã«ãããå¶éãªãã«ä»»æã®é«å質ã§ãµãŠã³ããé²é³ã§ããä»»æã®åœ¢åŒïŒFLACãå«ãïŒã§ä¿åã§ããŸãã
ãŸãããªã·ãã¹ã³ãŒããæã£ãŠããªãããšãä»ãå ããŠãããŸãã ãã®ããã°ã©ã ã¯ç§ã«åã£ãŠä»£ãããŸããã
çµè«ã®ä»£ããã«ã
次ã®èšäºã§ã¯ãDMAã¢ãžã¥ãŒã«ãšDACãšã®çµåã«ã€ããŠèª¬æããŸãã
以åã®èšäºã®ãªã¹ãã