PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RP6Control M32: Tonfrequenzen



Dirk
08.10.2009, 22:44
Hallo Leute,

beim RP6 wird mit Timer2 gepiepst:

void beep(uint8_t pitch, uint16_t time)
{
controlStatus.beep = true;
sound_timer = time;
OCR2 = 255-pitch;
TCCR2 = (1 << WGM21) | (1 << COM20) | (1 << CS22) | (1 << CS21);
}
Das müßte dann ja Fast PWM mit TOP OCR2 sein?
Als Teiler ist wohl 256 vorgesehen (bei 16 MHz).

Wie muss ich dann den pitch berechnen?

Wäre das so richtig: pitch = 255 - (16000000 / 256 / f[Hz] / 2) ?

Gruß Dirk

Dirk
10.10.2009, 15:28
So,- wen's interessiert:

Das sind die mit dem Beeper der M32 erreichbaren Töne:

// Define tone frequencies (well temperament):

// Great Octave
#define Tone_H 2 //123Hz

// Small Octave
#define Tone_c 16 //131Hz
#define Tone_cis 30 //139Hz
#define Tone_d 42 //147Hz
#define Tone_dis 54 //156Hz
#define Tone_e 65 //165Hz
#define Tone_f 76 //175Hz
#define Tone_fis 86 //185Hz
#define Tone_g 96 //196Hz
#define Tone_gis 105 //208Hz
#define Tone_a 113 //220Hz
#define Tone_ais 121 //233Hz
#define Tone_h 128 //247Hz

// ' Octave
#define Tone_C1 136 //262Hz
#define Tone_Cis1 142 //277Hz
#define Tone_D1 149 //294Hz
#define Tone_Dis1 155 //311Hz
#define Tone_E1 160 //330Hz
#define Tone_F1 166 //349Hz
#define Tone_Fis1 171 //370Hz
#define Tone_G1 175 //392Hz
#define Tone_Gis1 180 //415Hz
#define Tone_A1 184 //440Hz
#define Tone_Ais1 188 //466Hz
#define Tone_H1 192 //494Hz

// '' Octave
#define Tone_C2 195 //523Hz
#define Tone_Cis2 199 //554Hz
#define Tone_D2 202 //587Hz
#define Tone_Dis2 205 //622Hz
#define Tone_E2 208 //659Hz
#define Tone_F2 210 //698Hz
#define Tone_Fis2 213 //740Hz
#define Tone_G2 215 //784Hz
#define Tone_Gis2 217 //831Hz
#define Tone_A2 219 //880Hz
#define Tone_Ais2 221 //932Hz
#define Tone_H2 223 //988Hz

// ''' Octave
#define Tone_C3 225 //1047Hz
#define Tone_Cis3 227 //1109Hz
#define Tone_D3 228 //1175Hz
#define Tone_Dis3 230 //1245Hz
#define Tone_E3 231 //1319Hz
#define Tone_F3 233 //1397Hz
#define Tone_Fis3 234 //1480Hz
#define Tone_G3 235 //1568Hz
#define Tone_Gis3 236 //1661Hz
#define Tone_A3 237 //1760Hz
#define Tone_Ais3 238 //1865Hz
#define Tone_H3 239 //1976Hz

// '''' Octave
#define Tone_C4 240 //2093Hz
#define Tone_Cis4 241 //2217Hz
#define Tone_D4 242 //2349Hz
#define Tone_Dis4 242 //2489Hz
#define Tone_E4 243 //2637Hz
#define Tone_F4 244 //2794Hz
#define Tone_Fis4 244 //2960Hz
#define Tone_G4 245 //3136Hz
#define Tone_Gis4 246 //3322Hz
#define Tone_A4 246 //3520Hz
#define Tone_Ais4 247 //3729Hz
#define Tone_H4 247 //3951Hz

// ''''' Octave
#define Tone_C5 248 //4186Hz

Ab der 4. Oktave kann man nicht mehr jeden Ton darstellen. Viel Spaß beim Piepsen!

Gruß Dirk

M1C
10.10.2009, 18:47
danke =)
Werd ich bald gebrauchem können