Sample API functions for playing tunes on a piezo buzzer.

Functions

void halPlayTune_P (uint8_t PGM *tune, bool bkg)
 Plays a tune on the piezo buzzer.
 
void halStackIndicatePresence (void)
 Causes something to happen on a node (such as playing a tune on the buzzer) that can be used to indicate where it physically is.

Note Definitions

Flats are used instead of sharps because # is a special character.

#define NOTE_C3   119
 A note which can be used in tune structure definitions.
 
#define NOTE_Db3   112
 A note which can be used in tune structure definitions.
 
#define NOTE_D3   106
 A note which can be used in tune structure definitions.
 
#define NOTE_Eb3   100
 A note which can be used in tune structure definitions.
 
#define NOTE_E3   94
 A note which can be used in tune structure definitions.
 
#define NOTE_F3   89
 A note which can be used in tune structure definitions.
 
#define NOTE_Gb3   84
 A note which can be used in tune structure definitions.
 
#define NOTE_G3   79
 A note which can be used in tune structure definitions.
 
#define NOTE_Ab3   74
 A note which can be used in tune structure definitions.
 
#define NOTE_A3   70
 A note which can be used in tune structure definitions.
 
#define NOTE_Bb3   66
 A note which can be used in tune structure definitions.
 
#define NOTE_B3   63
 A note which can be used in tune structure definitions.
 
#define NOTE_C4   59
 A note which can be used in tune structure definitions.
 
#define NOTE_Db4   55
 A note which can be used in tune structure definitions.
 
#define NOTE_D4   52
 A note which can be used in tune structure definitions.
 
#define NOTE_Eb4   49
 A note which can be used in tune structure definitions.
 
#define NOTE_E4   46
 A note which can be used in tune structure definitions.
 
#define NOTE_F4   44
 A note which can be used in tune structure definitions.
 
#define NOTE_Gb4   41
 A note which can be used in tune structure definitions.
 
#define NOTE_G4   39
 A note which can be used in tune structure definitions.
 
#define NOTE_Ab4   37
 A note which can be used in tune structure definitions.
 
#define NOTE_A4   35
 A note which can be used in tune structure definitions.
 
#define NOTE_Bb4   33
 A note which can be used in tune structure definitions.
 
#define NOTE_B4   31
 A note which can be used in tune structure definitions.
 
#define NOTE_C5   29
 A note which can be used in tune structure definitions.
 
#define NOTE_Db5   27
 A note which can be used in tune structure definitions.
 
#define NOTE_D5   26
 A note which can be used in tune structure definitions.
 
#define NOTE_Eb5   24
 A note which can be used in tune structure definitions.
 
#define NOTE_E5   23
 A note which can be used in tune structure definitions.
 
#define NOTE_F5   21
 A note which can be used in tune structure definitions.
 
#define NOTE_Gb5   20
 A note which can be used in tune structure definitions.
 
#define NOTE_G5   19
 A note which can be used in tune structure definitions.
 
#define NOTE_Ab5   18
 A note which can be used in tune structure definitions.
 
#define NOTE_A5   17
 A note which can be used in tune structure definitions.
 
#define NOTE_Bb5   16
 A note which can be used in tune structure definitions.
 
#define NOTE_B5   15
 A note which can be used in tune structure definitions.

Detailed Description

See buzzer.h for source code.

Macro Definition Documentation

#define NOTE_A3   70
#define NOTE_A4   35
#define NOTE_A5   17
#define NOTE_Ab3   74
#define NOTE_Ab4   37
#define NOTE_Ab5   18
#define NOTE_B3   63
#define NOTE_B4   31
#define NOTE_B5   15
#define NOTE_Bb3   66
#define NOTE_Bb4   33
#define NOTE_Bb5   16
#define NOTE_C3   119
#define NOTE_C4   59
#define NOTE_C5   29
#define NOTE_D3   106
#define NOTE_D4   52
#define NOTE_D5   26
#define NOTE_Db3   112
#define NOTE_Db4   55
#define NOTE_Db5   27
#define NOTE_E3   94
#define NOTE_E4   46
#define NOTE_E5   23
#define NOTE_Eb3   100
#define NOTE_Eb4   49
#define NOTE_Eb5   24
#define NOTE_F3   89
#define NOTE_F4   44
#define NOTE_F5   21
#define NOTE_G3   79
#define NOTE_G4   39
#define NOTE_G5   19
#define NOTE_Gb3   84
#define NOTE_Gb4   41
#define NOTE_Gb5   20

Function Documentation

void halPlayTune_P ( uint8_t PGM *  tune,
bool  bkg 
)

The tune is played in the background if ::bkg is true. Otherwise, the API blocks until the playback of the tune is complete. halPlayTune_P() is not meant to be called back-to-back.

Parameters
tuneA pointer to tune to play.
bkgDetermines whether the tune plays in the background. If true, tune plays in background; if false, tune plays in foreground.

A tune is implemented as follows:

1 uint8_t PGM hereIamTune[] = { //All tunes are stored in flash.
2  NOTE_B4, 1, //Plays the note B4 for 100 milliseconds.
3  0, 1, //Pause for 100 milliseconds.
4  NOTE_B5, 5, //Plays the note B5 for 500 milliseconds.
5  0, 0 //NULL terminates the tune.
6  };
void halStackIndicatePresence ( void  )