#include "FlexiTimer2.h"
const long Tp = 500;
const int led_pin = 3;
const double Vref = 5.0;
const int m = 101;
const int nd = 255;
volatile double duty = 1.0;
void setup() {
Serial.begin(9600);
pinMode(led_pin, OUTPUT);
FlexiTimer2::set(Tp, 1.0/1000, LEDBrightness);
FlexiTimer2::start();
}
void loop() {
}
void LEDBrightness() {
int level = nd*duty;
analogWrite(led_pin, level);
duty -= (Vref/(m-1));
Serial.print("Duty value: ");
Serial.print(duty);
Serial.print("; PWM value: ");
Serial.print(duty*Vref);
Serial.println();
if (duty < 0.0) {
duty = 1.0;
}
}