Buzzer class with note definitions and custom song functionality
Buzzer.h@0:b530d1a3290f, 2017-02-20 (annotated)
- Committer:
- Elefantul_umilit
- Date:
- Mon Feb 20 11:20:16 2017 +0000
- Revision:
- 0:b530d1a3290f
Buzzer class
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Elefantul_umilit | 0:b530d1a3290f | 1 | #ifndef _BUZZER_H_ |
Elefantul_umilit | 0:b530d1a3290f | 2 | #define _BUZZER_H_ |
Elefantul_umilit | 0:b530d1a3290f | 3 | |
Elefantul_umilit | 0:b530d1a3290f | 4 | #include "mbed.h" |
Elefantul_umilit | 0:b530d1a3290f | 5 | |
Elefantul_umilit | 0:b530d1a3290f | 6 | class Buzzer { |
Elefantul_umilit | 0:b530d1a3290f | 7 | public: |
Elefantul_umilit | 0:b530d1a3290f | 8 | //all songs / sounds / routines names |
Elefantul_umilit | 0:b530d1a3290f | 9 | enum Song{ |
Elefantul_umilit | 0:b530d1a3290f | 10 | POST_SOUND=0, |
Elefantul_umilit | 0:b530d1a3290f | 11 | IMPERIAL_MARCH, |
Elefantul_umilit | 0:b530d1a3290f | 12 | CUSTOM_SONG}; |
Elefantul_umilit | 0:b530d1a3290f | 13 | //constructor |
Elefantul_umilit | 0:b530d1a3290f | 14 | Buzzer (PinName pin); |
Elefantul_umilit | 0:b530d1a3290f | 15 | //generates a sound of a desired frequency, for a fixed amount of time in s |
Elefantul_umilit | 0:b530d1a3290f | 16 | //no wait used (the main code execution is not delayed) |
Elefantul_umilit | 0:b530d1a3290f | 17 | void beep(float frequency, float time); |
Elefantul_umilit | 0:b530d1a3290f | 18 | //same functionality like beep, but it delays the execution |
Elefantul_umilit | 0:b530d1a3290f | 19 | void delayBeep(float frequency, float time); |
Elefantul_umilit | 0:b530d1a3290f | 20 | //given a Song defined in the enum above and a number of iterations |
Elefantul_umilit | 0:b530d1a3290f | 21 | //it sings the song for the specified amount of time |
Elefantul_umilit | 0:b530d1a3290f | 22 | void sing(Song, unsigned short); |
Elefantul_umilit | 0:b530d1a3290f | 23 | //it sings the song only once |
Elefantul_umilit | 0:b530d1a3290f | 24 | void sing(Song); |
Elefantul_umilit | 0:b530d1a3290f | 25 | //stops the buzzer |
Elefantul_umilit | 0:b530d1a3290f | 26 | void stop(); |
Elefantul_umilit | 0:b530d1a3290f | 27 | private : |
Elefantul_umilit | 0:b530d1a3290f | 28 | PwmOut pwm; |
Elefantul_umilit | 0:b530d1a3290f | 29 | Timeout timeOff; |
Elefantul_umilit | 0:b530d1a3290f | 30 | }; |
Elefantul_umilit | 0:b530d1a3290f | 31 | |
Elefantul_umilit | 0:b530d1a3290f | 32 | |
Elefantul_umilit | 0:b530d1a3290f | 33 | #endif |
Elefantul_umilit | 0:b530d1a3290f | 34 |