@Старик Похабыч,Хотел ещё спросить у вас совета. Дабы не плодить лишние темы, пишу тут. Вопрос такой:
Раздобыл библиотеку BlinkControl:
https://github.com/mickey9801/BlinkControl
Ею можно легко управлять миганием светодиодов, при помощи паттернов - мигнуть один раз, мигнуть два раза и т.д.
Паттерны назначаются при помощи массива - 8 int по 2 байта каждый итого 16 байт на один паттерн.
Работает по такому принципу - длительность (миллисекунд) включения, длительность мс выключения, снова длительность включения и т.д.
Вот пример кода из библиотечного примера:
#include <BlinkControl.h>
BlinkControl led(15);
bool btnState = true;
unsigned long lastPressedAt = 0;
void setup() {
pinMode(12, INPUT);
led.begin();
int timing[] = {500,1000,60,1000,500,1000,60,1000};
led.blink(timing, sizeof(timing)/sizeof(int));
}
void loop() {
led.loop();
if (btnState) led.resume();
else led.pause();
if (digitalRead(12) == HIGH && millis()-lastPressedAt >= 1000) {
lastPressedAt = millis();
btnState = !btnState;
}
}
К примеру, если у нас есть 2 светодиода и каждому надо по пять паттернов, то это уже 2*5*16= 160 байт, что очень много.
Я задался вопросом:
Можно ли, к примеру, объявить пару-тройку констант с длительностями:
const intA = 250
const intB = 500
const intC = 1000
А потом эти константы скормить массиву в виде указателей:
int timing[] = { &intA, &B, &C };
То есть, хотелось бы, чтобы занималось всего 3 (в данном случае) байта памяти под тайминги,
из них, как из кирпичиков, сваять тот или иной паттерн, который не жрал бы много памяти.
Можете что-то подсказать по этому поводу, если не затруднит?