#include <TaskScheduler.h>
#define BLEND_TIME 5000 // milliseconds
#define BLEND_STEPS 255
void bufferBlend();
void bufferBlendDone();
void startBufferBlend();
uint8_t _bufferBlendAmount = 0; // blending between buffers
Scheduler _runner;
Task _taskBufferBlend(19 * TASK_MILLISECOND, BLEND_STEPS, &bufferBlend);
Task _taskStartBufferBlend(15 * TASK_SECOND,TASK_FOREVER, &startBufferBlend);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
_runner.init();
_runner.addTask(_taskBufferBlend);
_taskBufferBlend.setOnDisable(&bufferBlendDone);
_taskBufferBlend.enable();
_runner.addTask(_taskStartBufferBlend);
_taskStartBufferBlend.enable();
}
void loop() {
_runner.execute();
// delay(1);
}
void startBufferBlend() {
_taskBufferBlend.enableIfNot();
Serial.printf("Start blending: %u\n", _bufferBlendAmount );
}
void bufferBlend() {
constexpr const char* SGN = "bufferBlend()";
_bufferBlendAmount = _taskBufferBlend.getRunCounter();
Serial.printf("Blending: %u\n", _bufferBlendAmount );
}
void bufferBlendDone() {
constexpr const char* SGN = "bufferBlendDone()";
Serial.printf("%s: Blending done: %u\n", SGN, _bufferBlendAmount );
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23