class Generator
{
int prodleva, status, f;
double cas;
public:
Generator(): status(0), cas(0), f(10), prodleva(100) {}
void tick()
{
cas += prodleva/1000.;
if (status)
{
Serial.print(cas);
Serial.print(" ");
Serial.print(sin(6.28*cas));
Serial.println(";");
}
delay(prodleva);
}
void start() {status = 1;}
void stop() {status = 0;}
void reset() {cas = 0;}
void setFR(int fr) {f = fr;}
void setSR(int sr) {prodleva = 1000/sr;}
};
void setup() {
Serial.begin(115200);
}
Generator g;
void loop() {
if(Serial.available())
{
String cmd = Serial.readStringUntil('\n');
int ind = cmd.indexOf('=');
if (ind > 0)
{
String cmd1 = cmd.substring(0, ind);
int value = cmd.substring(ind+1).toInt();
if (cmd1 == "fvz")
g.setSR(value);
else if (cmd1 == "fper")
g.setFR(value);
}
if (cmd == "start")
g.start();
else if (cmd == "stop")
g.stop();
else if (cmd == "tim_rst")
g.reset();
}
g.tick();
}