То есть чтобы например мигать несколькими светодиодами с разной частотой, при этом вращать несколько сервоприводов с разной скоростью и т.д.?
Я нашел например вот такое: http://robotic-controls.com/learn/ardui ... -intervals
По идее это как раз то, что нужно. Фактически это аналог функций из Javascript: setInterval, setTimeout, clearInterval
Но проблема в том, что она работает неправильно: функции setInterval и setTimeout работают как предполагается, но clearInterval, который должен останавливать работу только конкретного интервала почему-то останавливает все интервалы. Может я как-то не так пользуюсь им?
- Код: Выделить всё
#include "kernel.h"
Kernel kernel;
int thcounter = 0;
int p1;
int p2;
void setup() {
Serial.begin(9600);
p1 = kernel.setInterval(1000000UL, test);
p2 = kernel.setInterval(2000000UL, test2);
}
void loop() {
kernel.runNext();
}
void test() {
Serial.println(1000);
thcounter++;
if(thcounter>10) {
kernel.clearInterval(p2); //вот эта строчка по идее должна останавливать только выполнение функции test2
но останавливает выполнение и test тоже
}
}
void test2() {
Serial.println(2000);
}
Также я нашел целый список подобных библиотек
http://blog.ardublock.com/2013/10/29/ev ... n-arduino/
Но по описанию именно не работающий Kernel именно то, что я ищу:)
Кто-то чем-то из них пользовался? Что из них позволит реализовать то же самое?