/*
this sketch run the Pin13 built-in LED andcontrol interval blinking by using TaskScheduler.h API
you can change the slider sate and change interval by change the slider position.

ElkanaM
  
*/

#include <TaskScheduler.h>
long intervalBlink = 1000;

void  ledOffCallback();
void  ledOnCallback();
void sliderCallback();


Scheduler ts;
Task tLedBlinker (intervalBlink , TASK_FOREVER, &ledOnCallback, &ts, true);
Task tSlider(1023, TASK_FOREVER, &sliderCallback, &ts, true);

void sliderCallback(){

        intervalBlink = analogRead(A0);
        
        Serial.println(analogRead(A0));
        // tLedBlinker.setInterval(analogRead(A0));
        // tSlider.setInterval(analogRead(A0));

        tLedBlinker.enable();
}

void  ledOnCallback()
{
    digitalWrite(13, HIGH);
    Serial.print(millis());
    Serial.println("  : LED ON");
    tLedBlinker.delay(intervalBlink);
    tLedBlinker.setCallback(&ledOffCallback);

}

void  ledOffCallback()
{ 
    digitalWrite(13, LOW);
    Serial.print(millis());
    Serial.println("  : LED OFF");
    tLedBlinker.delay(intervalBlink);
    tLedBlinker.setCallback(&ledOnCallback);

}

void setup(){
pinMode(13, OUTPUT);
pinMode(A0, INPUT);
Serial.begin(115200);
   
}
void loop () 
{
    ts.execute();
    // delay(1);
}