При работе microLED.h с несколькими лентами на разных пинах у мня появились вопросы.
Основной хотелось бы создать массив (с указателями/ссылками на объекты) к которому я мог-бы обращаться типа stripz[ i ].show(); а i использовать как переменную подскажите как это сделать.
Второй это как передавать эти ссылки/указатели в функции. В интерне я чет туплю, вроде все описано, а у меня чет не получается.
А третий если какой-нибудь инструмент компиляции типа цикла, чтобы компилятор сам писал типовые строчки
Основной хотелось бы создать массив (с указателями/ссылками на объекты) к которому я мог-бы обращаться типа stripz[ i ].show(); а i использовать как переменную подскажите как это сделать.
Второй это как передавать эти ссылки/указатели в функции. В интерне я чет туплю, вроде все описано, а у меня чет не получается.
А третий если какой-нибудь инструмент компиляции типа цикла, чтобы компилятор сам писал типовые строчки
C++:
/*мне бы хотелось создать массив (с указателями/ссылками на объекты) к которому я мог-бы обращаться типа (stripz[i].strip).show(); а i использовать как переменную*/
struct strop{
int8_t STRIP_PIN; //можно указыать пин как А1 так и 15
int NUMLEDS;
//тип? strip //имя ленты
};
#define col_strip 2
constexpr strop stripz[col_strip] = { //constexpr - при компиляции само подсказало я так понмаю что это масив констант."спецификатор типа, который обозначает константные выражения, которые могут быть вычислены во время компиляции кода."
{A1, 51/*, strip0*/ },
{A2, 51/*, strip1*/ }
};
#define COLOR_DEBTH 3
#include <microLED.h> // подключаем библу
microLED<stripz[0].NUMLEDS, stripz[0].STRIP_PIN, MLED_NO_CLOCK, LED_WS2815, ORDER_RGB, CLI_AVER> strip0; //можно ли заменить strip0 на stripz[0].strip?
microLED<stripz[1].NUMLEDS, stripz[1].STRIP_PIN, MLED_NO_CLOCK, LED_WS2815, ORDER_RGB, CLI_AVER> strip1; //можно ли заменить strip1 на stripz[1].strip?
/*я так понимаю нельзя или нет смысла это только бессмысленая трата памяти но интерсно можно ли?
Я так понимаю, что сам интересующий меня массив (с указателями/ссылками на объекты) придётся создавать после подключения объектов подскажите как?
Еще меня интересует если какой-нибудь инструмент компиляции типа цикла чтобы компилятор сам писал типовые строчки что-то типа такого:
#for (int i = 0; i < col_strip; i++) {
microLED<stripz[i].NUMLEDS, stripz[i].STRIP_PIN, MLED_NO_CLOCK, LED_WS2815, ORDER_RGB, CLI_AVER> stripz[i].strip;
}
#end_for
*/
#define PHOTO_PIN A0 // пин потенциометра это для наглядности работет ли
uint32_t rez;
void setup() {
strip0.setBrightness(150);
strip1.setBrightness(100);
//stripz[0].NUMLEDS = 25; // масив нельзя менять "in read-only object"
}
void loop() {
rez = (analogRead(PHOTO_PIN))>>2;
strip0.fill(mHSV(rez, 255, 255));
strip0.show();
//show(strip0); ////подскажите как правильно сделать передачу объекта в функцию
delay (20);
}
/*//подскажите как правильно сделать передачу объекта в функцию. В интерне я чет туплю, вроде все описано, а у меня чет не получается.
void show(microLED& object){
object.show();
}
*/