Как передать несколько переменных в функцию?
Используя библиотеку FastLED, я хочу зажечь несколько источников света одновременно.
В настоящее время я прохожу только один свет к функции.
spell( int LEDNumber )
{
FastLED.clear();
leds[LEDNumber] = CRGB (255,255,255); //белый
FastLED.show();
time = 500;
delay(t);
}
Я хотел бы пропускать более одного источника света за раз.
@Joshua Dance, 👍2
Обсуждение2 ответа
Лучший ответ:
Вы можете создать struct
с элементами "x", по одному на каждый светодиод:
struct ArrayOfBooleans {
bool array[4];
};
ArrayOfBooleans myOutputArray;
myOutputArray.array[0] = true;
myOutputArray.array[1] = true;
myOutputArray.array[2] = false;
myOutputArray.array[3] = true;
lightEmUp(myOutputArray);
void lightEmUp(ArrayOfBooleans myOutputArray) {
bool isFirstLightOn = myOutputArray.array[0];
// и т. д
}
ПРИМЕЧАНИЕ. Если вы столкнулись с проблемами Exception 9
(используя эту логику на другой плате), проверьте этот ответ к другому сообщению
Замечательный ответ. Намного лучше, чем то, что я нашел. Спасибо!, @Joshua Dance
Я только недавно столкнулся с этой проблемой, и это было решение, которое я реализовал. сохраняет чистоту, а также упрощает обновление (добавление или удаление параметров). Спасибо за принятие., @tony gil
Исключение 9 на Uno?, @Juraj
зачем структура? это бесполезно и будет скопировано как параметр функции. вы можете передать массив как параметр, @Juraj
вы могли бы сделать это, но структура может иметь и другие данные, например, несколько массивов для нескольких измерений параметров. например, другие параметры. структура как класс далеко не бесполезна, особенно если ваша разработка ориентирована на методы., @tony gil
Я нахожу ваш спам грубым и оскорбительным в абстрактной форме и отметил вас за это, @Juraj. Читаю не тяжело, нет смысла последовательно писать один и тот же грубый комментарий., @tony gil
Легче, чем я думал. Нашел это, читая документы. Представь это. :)
Чтобы передать несколько переменных, просто разделите их запятой.
Документация: https://www.arduino.cc/en/Reference/FunctionDeclaration
Соответствующий код:
int myMultiplyFunction(int x, int y){
int result;
result = x * y;
return result;
}
- Как вернуть значение массива символов в функции Arduino IDE?
- Как написать функцию, возвращающую матрицу?
- Возможно ли, чтобы функция возвращала строку ИЛИ число, в зависимости от адреса
- Функция управления сервоприводами
- Округление до первой значащей цифры
- Попытка создать функцию задержки при выполнении других функций, используя библиотеки Timer.h. Ардуино уно
- Как использовать эту функцию конфинга
- Случайный без параметров
Это действительно базовый вопрос программирования на C/C++, а не вопрос об Arduino. В любом случае, я рад, что вы смогли это понять., @Duncan C
@DuncanC Там действительно есть что-то вроде нейтральной зоны, поскольку Arduino ограничивает использование C ++, особенно в отношении ограничений памяти. Я не уверен, что был бы так строг с Джошуа или с кем-либо в этом отношении., @tony gil
Тони, да, есть некоторые серые области, но это вопрос 101 программирования для C/C++., @Duncan C