Как объявить указатель на библиотеку arduino neopixels, чтобы настроить его в функции настройки с помощью динамических переменных?

Я использую полоски NeoPixel и хочу иметь возможность объявлять на них указатель, но не инициализировать их до тех пор, пока не будет активирована функция setup (поскольку они будут инициализироваться определенными переменными, доступными только в < код>настройка).

Для более простых типов данных я просто делаю:

int totalNumColors = 4; //количество цветов, которые пользователь может перебирать`
uint32_t* colorArray = new uint32_t[totalNumColors];
void setup() {
  for (int i=0;i<totalNumColors;i++){
    colorArray[i] = totalColorArray[i];
  }
}

Как это сделать для инициализаторов полосы NeoPixel? Я пробовал:

Adafruit_NeoPixel* pixels = new Adafruit_Neopixel;`

но я получаю сообщение об ошибке:

expected type-specifier before 'adafruit neopixel'

, 👍0

Обсуждение

Я пытаюсь понять, используя указатели для Neopixels - я не эксперт C, но пытаюсь учиться на ходу. Я просмотрел некоторую документацию (прочитал некоторые сайты, посмотрел несколько видео на YouTube) и понял основы указателей, и я могу использовать их более простыми способами. Но меня смущает, как вы используете указатели при настройке Neopixels. Не могли бы вы поделиться своим кодом, чтобы я мог понять, как устроены Neopixels и как вы их используете? Я буду очень признателен. Дэйвид, @David Warren


1 ответ


Лучший ответ:

1

Вы можете присвоить указателю значение NULL и в функции setup присвоить ему значение. Обратите внимание, что вы должны добавить () для аргументов, даже если в этом случае их нет. Также вы должны включить библиотеку (но, возможно, вы это сделали, но не добавили в свой вопрос).

#include "Adafruit_NeoPixel.h"

Adafruit_NeoPixel* pixels = NULL;

void setup() 
{
  pixels = new Adafruit_NeoPixel();
}
,

Я включил библиотеку, но спасибо, да - это именно то, что я хотел сделать., @mheavers

Удачи с вашим проектом., @Michel Keijzers