From 8c9b71f0d63d4739f17349ce11cf115770d6cfcf Mon Sep 17 00:00:00 2001 From: lovyan03 <42724151+lovyan03@users.noreply.github.com> Date: Fri, 26 Apr 2019 16:55:10 +0900 Subject: [PATCH] Update: Speaker works even if you forget "M5.Speaker.begin()" --- src/utility/Speaker.cpp | 7 ++++++- src/utility/Speaker.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/utility/Speaker.cpp b/src/utility/Speaker.cpp index 56e8a75..225261d 100644 --- a/src/utility/Speaker.cpp +++ b/src/utility/Speaker.cpp @@ -2,20 +2,24 @@ SPEAKER::SPEAKER(void) { _volume = 8; + _begun = false; } void SPEAKER::begin() { + _begun = true; ledcSetup(TONE_PIN_CHANNEL, 0, 13); ledcAttachPin(SPEAKER_PIN, TONE_PIN_CHANNEL); - // digitalWrite(SPEAKER_PIN, 0); setBeep(1000, 100); } void SPEAKER::end() { + mute(); ledcDetachPin(SPEAKER_PIN); + _begun = false; } void SPEAKER::tone(uint16_t frequency) { + if(!_begun) begin(); ledcWriteTone(TONE_PIN_CHANNEL, frequency); } @@ -26,6 +30,7 @@ void SPEAKER::tone(uint16_t frequency, uint32_t duration) { } void SPEAKER::beep() { + if(!_begun) begin(); tone(_beep_freq, _beep_duration); } diff --git a/src/utility/Speaker.h b/src/utility/Speaker.h index 6935c3c..77fbc86 100644 --- a/src/utility/Speaker.h +++ b/src/utility/Speaker.h @@ -35,6 +35,7 @@ uint8_t _volume; uint16_t _beep_duration; uint16_t _beep_freq; + bool _begun; bool speaker_on; }; #endif