ECE3872 HW/SW Project Code
Dependencies: mbed Servo mbed-rtos 4DGL-uLCD-SE PinDetect X_NUCLEO_53L0A1
Speaker.h@26:2063ee8419cc, 2020-04-14 (annotated)
- Committer:
- trmontgomery
- Date:
- Tue Apr 14 01:40:26 2020 +0000
- Revision:
- 26:2063ee8419cc
- Parent:
- 2:6302c949b133
map of distinct movements is playable. can record and play music at the same time.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rdobbs6 | 2:6302c949b133 | 1 | #include "mbed.h" |
rdobbs6 | 2:6302c949b133 | 2 | // a new class to play a note on Speaker based on PwmOut class |
rdobbs6 | 2:6302c949b133 | 3 | class Speaker |
rdobbs6 | 2:6302c949b133 | 4 | { |
rdobbs6 | 2:6302c949b133 | 5 | public: |
rdobbs6 | 2:6302c949b133 | 6 | Speaker(PinName pin) : _pin(pin) { |
rdobbs6 | 2:6302c949b133 | 7 | // _pin(pin) means pass pin to the Speaker Constructor |
rdobbs6 | 2:6302c949b133 | 8 | } |
rdobbs6 | 2:6302c949b133 | 9 | // class method to play a note based on PwmOut class |
rdobbs6 | 2:6302c949b133 | 10 | void PlayNote(float frequency, float duration, float volume) { |
rdobbs6 | 2:6302c949b133 | 11 | _pin.period(1.0/frequency); |
rdobbs6 | 2:6302c949b133 | 12 | _pin = volume/2.0; |
rdobbs6 | 2:6302c949b133 | 13 | wait(duration); |
rdobbs6 | 2:6302c949b133 | 14 | _pin = 0.0; |
rdobbs6 | 2:6302c949b133 | 15 | } |
rdobbs6 | 2:6302c949b133 | 16 | |
rdobbs6 | 2:6302c949b133 | 17 | private: |
rdobbs6 | 2:6302c949b133 | 18 | PwmOut _pin; |
rdobbs6 | 2:6302c949b133 | 19 | }; |