See Buzzer Control for documentation.

License#

Copyright 2018 Silicon Laboratories Inc. www.silabs.com

The licensor of this software is Silicon Laboratories Inc. Your use of this software is governed by the terms of Silicon Labs Master Software License Agreement (MSLA) available at www.silabs.com/about-us/legal/master-software-license-agreement. This software is distributed to you in Source Code format and is governed by the sections of the MSLA applicable to Source Code.

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

void halPlayTune_P(uint8_t PGM *tune, bool bkg);

void halStackIndicatePresence(void);

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.

Functions#

void
halPlayTune_P(uint8_t PGM *tune, bool bkg)

Plays a tune on the piezo buzzer.

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 Documentation#

Function Documentation#

halPlayTune_P#

void halPlayTune_P (uint8_t PGM * tune, bool bkg)

Plays a tune on the piezo buzzer.

Parameters
TypeDirectionArgument NameDescription
uint8_t PGM *N/Atune

A pointer to tune to play.

boolN/Abkg

Determines whether the tune plays in the background. If true, tune plays in background; if false, tune plays in foreground.

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.

A tune is implemented as follows:

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

halStackIndicatePresence#

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.

Parameters
TypeDirectionArgument NameDescription
voidN/A