From 2c4b9eef038c88706002dbff20751b2458d649d0 Mon Sep 17 00:00:00 2001 From: Lukas Bachschwell Date: Mon, 27 Nov 2017 12:35:38 +0100 Subject: [PATCH] Proper multi platform support --- SimpleExpressions.cpp | 25 ++++++++++++++++++------- SimpleExpressions.h | 1 + 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/SimpleExpressions.cpp b/SimpleExpressions.cpp index 2c359fb..a2525f6 100755 --- a/SimpleExpressions.cpp +++ b/SimpleExpressions.cpp @@ -3,12 +3,17 @@ #define ledc_channel 5 -void SimpleExpressionsClass::init(int mouthPin, int buzzerPin) { - mouth = Adafruit_NeoPixel(7, mouthPin, NEO_GRB + NEO_KHZ800); +void SimpleExpressionsClass::init(int aMouthPin, int aBuzzerPin) { + mouth = Adafruit_NeoPixel(7, aMouthPin, NEO_GRB + NEO_KHZ800); mouth.begin(); - ledcSetup(ledc_channel, 2000, 8); // channel, max frequency, resolution - ledcAttachPin(buzzerPin, ledc_channel); + buzzerPin = aBuzzerPin; + + #if defined(ESP32) + ledcSetup(ledc_channel, 2000, 8); // channel, max frequency, resolution + ledcAttachPin(aBuzzerPin, ledc_channel); + #endif + clearMouth(); } @@ -118,9 +123,15 @@ void SimpleExpressionsClass::clearPixels() { // avoid strange issues on ESP32 wi void SimpleExpressionsClass::_tone (float noteFrequency, long noteDuration, int silentDuration){ if(silentDuration==0){silentDuration=1;} - ledcWriteTone(ledc_channel, noteFrequency); - delay(noteDuration); // milliseconds - ledcWrite(ledc_channel, 0); // notone + #if defined(ESP32) + ledcWriteTone(ledc_channel, noteFrequency); + delay(noteDuration); // milliseconds + ledcWrite(ledc_channel, 0); // notone + #else + tone(buzzerPin, noteFrequency, noteDuration); + delay(noteDuration); // milliseconds + #endif + delay(silentDuration); } diff --git a/SimpleExpressions.h b/SimpleExpressions.h index 9455548..3c45074 100755 --- a/SimpleExpressions.h +++ b/SimpleExpressions.h @@ -43,6 +43,7 @@ class SimpleExpressionsClass private: Adafruit_NeoPixel mouth; void clearPixels(); + int buzzerPin; }; extern SimpleExpressionsClass SimpleExpressions;