Zumo32U4 library
PololuBuzzer.h
Go to the documentation of this file.
1// Copyright Pololu Corporation. For more information, see http://www.pololu.com/
2
36#pragma once
37
38#include <avr/pgmspace.h>
39
42#define PLAY_AUTOMATIC 0
43
44
46#define PLAY_CHECK 1
47
48// n
49// Equal Tempered Scale is given by f = f * a
50// n o
51//
52// where f is chosen as A above middle C (A4) at f = 440 Hz
53// o o
54// and a is given by the twelfth root of 2 (~1.059463094359)
55
62#define NOTE_C(x) ( 0 + (x)*12)
63#define NOTE_C_SHARP(x) ( 1 + (x)*12)
64#define NOTE_D_FLAT(x) ( 1 + (x)*12)
65#define NOTE_D(x) ( 2 + (x)*12)
66#define NOTE_D_SHARP(x) ( 3 + (x)*12)
67#define NOTE_E_FLAT(x) ( 3 + (x)*12)
68#define NOTE_E(x) ( 4 + (x)*12)
69#define NOTE_F(x) ( 5 + (x)*12)
70#define NOTE_F_SHARP(x) ( 6 + (x)*12)
71#define NOTE_G_FLAT(x) ( 6 + (x)*12)
72#define NOTE_G(x) ( 7 + (x)*12)
73#define NOTE_G_SHARP(x) ( 8 + (x)*12)
74#define NOTE_A_FLAT(x) ( 8 + (x)*12)
75#define NOTE_A(x) ( 9 + (x)*12)
76#define NOTE_A_SHARP(x) (10 + (x)*12)
77#define NOTE_B_FLAT(x) (10 + (x)*12)
78#define NOTE_B(x) (11 + (x)*12)
79
81#define SILENT_NOTE 0xFF
82
86#define DIV_BY_10 (1 << 15)
90{
91 public:
92
145 static void playFrequency(unsigned int freq, unsigned int duration,
146 unsigned char volume);
147
171 static void playNote(unsigned char note, unsigned int duration,
172 unsigned char volume);
173
264 static void play(const char *sequence);
265
288 static void playFromProgramSpace(const char *sequence);
289
310 static void playMode(unsigned char mode);
311
325 static unsigned char playCheck();
326
338 static unsigned char isPlaying();
339
345 static void stopPlaying();
346
347
348 private:
349
350 // initializes timer for buzzer control
351 static void init2();
352 static void init();
353};
Play beeps and music with the buzzer.
Definition: PololuBuzzer.h:90
static void playFromProgramSpace(const char *sequence)
Plays the specified sequence of notes from program space.
static void play(const char *sequence)
Plays the specified sequence of notes.
static void stopPlaying()
Stops any note, frequency, or melody being played.
static unsigned char playCheck()
Starts the next note in a sequence, if necessary, in PLAY_CHECK mode.
static unsigned char isPlaying()
Checks whether a note, frequency, or sequence is being played.
static void playFrequency(unsigned int freq, unsigned int duration, unsigned char volume)
Plays the specified frequency for the specified duration.
static void playNote(unsigned char note, unsigned int duration, unsigned char volume)
Plays the specified note for the specified duration.
static void playMode(unsigned char mode)
Controls whether play() sequence is played automatically or must be driven with playCheck().