⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sound.h

📁 butterflylogger_src_20060822 for atmel avr
💻 H
字号:
void Sound_Init(void);
char SelectSound(char);
char Sound(char);
void Play_Tune(void);

#define DURATION_SEED 32  

/*****************************************************************************
*
*   Tone definition. Each tone are set up with a value which will give the 
*   right frequency when applied to a 16-bits timer with PWM. These values are based
*   on a CLKcpu running @ 1Mhz.
*
*   First find the frequency for all tones. 
*
*   Formula:    ToneX = Bf * 2^(ToneX/12)
*   
*   ToneX: the actual tone, e.g. C0 = 3
*   Bf: Basefrequency = 220Hz (A)
*
*       
*   E.g: For tone C0 this would be:     C0 = 220 * 2^(3/12)
*                                       C0 = 261,6256...
*
*   Now we must find which value to put in a 16-bits timer with PWM to achieve 
*   this frequency
*
*   Formula:    Timer value = 1Mhz / ToneHz / 2
*
*   E.g: For tone C0 this would be:     Timer value = 1000000 / 261,6256... / 2
*                                       Timer value = 1911
*
*   Set up a 16-bits timer to run at Phase/Freq-correct PWM, top value = ICR1,
*   set OC1A when upcounting, clear when downcounting.
*   
*****************************************************************************/

#define A   2273        // tone 0
#define xA  2145        // tone 1
#define Ax  2145        // tone 1
#define B   2025        // tone 2
#define C0  1911        // tone 3
#define xC0 1804        // ...
#define Cx0 1804
#define D0  1703
#define xD0 1607
#define Dx0 1607
#define E0  1517
#define F0  1432
#define xF0 1351
#define Fx0 1351
#define G0  1275
#define xG0 1204
#define Gx0 1204
#define A0  1136
#define xA0 1073
#define Ax0 1073
#define B0  1012
#define C1  956
#define xC1 902
#define Cx1 902
#define D1  851
#define xD1 804
#define Dx1 804
#define E1  758
#define F1  716
#define xF1 676
#define Fx1 676
#define G1  638
#define xG1 602
#define Gx1 602
#define A1  568
#define xA1 536
#define Ax1 536
#define B1  506
#define C2  478
#define xC2 451
#define Cx2 451
#define D2  426
#define xD2 402
#define Dx2 402
#define E2  379
#define F2  356
#define xF2 338
#define Fx2 338
#define G2  319
#define xG2 301
#define Gx2 301
#define A2  284
#define xA2 268
#define Ax2 268
#define B2  253
#define C3  239
#define xC3 225
#define Cx3 225
#define D3  213
#define xD3 201
#define Dx3 201
#define E3  190
#define F3  179
#define xF3 169
#define Fx3 169
#define G3  159
#define xG3 150
#define Gx3 150
#define A3  142
#define xA3 134
#define Ax3 134
#define B3  127
#define C4  119


#define P   1           // pause



/******************************************************************************
*
*   The tone definitions are duplicated to accept both upper and lower case
*
******************************************************************************/

#define a   2273        // tone 0
#define xa  2145        // tone 1
#define ax  2145        // tone 1
#define b   2024        // tone 2
#define c0  1911        // tone 3
#define xc0 1804        // ...
#define cx0 1804
#define d0  1703
#define xd0 1607
#define dx0 1607
#define e0  1517
#define f0  1432
#define xf0 1351
#define fx0 1351
#define g0  1275
#define xg0 1204
#define gx0 1204
#define a0  1136
#define xa0 1073
#define ax0 1073
#define b0  1012
#define c1  956
#define xc1 902
#define cx1 902
#define d1  851
#define xd1 804
#define dx1 804
#define e1  758
#define f1  716
#define xf1 676
#define fx1 676
#define g1  638
#define xg1 602
#define gx1 602
#define a1  568
#define xa1 536
#define ax1 536
#define b1  506
#define c2  478
#define xc2 451
#define cx2 451
#define d2  426
#define xd2 402
#define dx2 402
#define e2  379
#define f2  356
#define xf2 338
#define fx2 338
#define g2  319
#define xg2 301
#define gx2 301
#define a2  284
#define xa2 268
#define ax2 268
#define b2  253
#define c3  239
#define xc3 225
#define cx3 225
#define d3  213
#define xd3 201
#define dx3 201
#define e3  190
#define f3  179
#define xf3 169
#define fx3 169
#define g3  159
#define xg3 150
#define gx3 150
#define a3  142
#define xa3 134
#define ax3 134
#define b3  127
#define c4  119



#define p   1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -