Передача переменной в функцию

У меня есть следующий код для включения или выключения светодиода. Я хотел бы изменить функцию, чтобы она также передавала PIN. Чем следует заменить X?

#define BIN_LED 2
#define PIN_LED 3

void led(uint8_t x, bool on) {
 digitalWrite(x, on ? LOW : HIGH);
}

void setup() {}

void loop() {
 led(BIN_LED, true);
 delay(1000);
 led(BIN_LED, false);
 delay(1000);
}

, 👍-2

Обсуждение

подумайте ... что такое X в digitalWrite(X, on)?, @jsotola

FWIW, подумай *почему* ты тоже это делаешь. Если вам нужно более короткое имя функции, подумайте о том, чтобы просто сгладить fn. Если вам нужен более "значимый" fn, я не уверен, что это достигнет этого., @Dave Newton


1 ответ


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

3

Ты сделал это. Все, что осталось,-это указать тип данных " X " в объявлении функции, как вы уже сделали для "on". "uint8_t" было бы разумным выбором.

,

это не сработало. Я обновил вопрос с вашим предложением., @motion channel

@motionchannel Это не сработало, потому что вы не настроили вывод в качестве выхода. Ответ правильный, код компилируется и правильно передает контакт. Поместите pinMode (BIN_LED, OUTPUT); в функцию setup (), чтобы ваш код загорелся светодиодом. Вы можете посмотреть на пример кода из Arduino IDE, чтобы увидеть, как это работает., @StarCat