+1 голос

Сегодня хотел попробовать создать две простенькие функции, одна включает а другая выключает светодиод

Скетч грузится, но не работает Подскажите в чем проблема?

void ledOn() { digitalWrite(led, 1); }
void ledOff() { digitalWrite(led, 0); }
void setup() {
  pinMode(led, OUTPUT);
}
void loop() {
  ledOn;
  delay(1000);
  ledOff;
  delay(500);
}

Пробовал менят функции местами все равно не работает

(35 баллов) 4

2 Ответы

+3 голосов
 
Лучший ответ
Код загружается потому что это выражение допустимо в c++, но работает от не так, как ожидалось.

Дело в том, что ledOn и ledOff — указатели на функции.

Для того, чтобы функция заработала, нужно в конце указателя добавить (), так мы «говорим», что мы хотим выполнить функцию.
(792 баллов) 1 4 23
выбран
+4 голосов

А почему такой странный вызов ?

ledOn;

Правильно будет:

ledOn();

А вообще ТУТ есть подробные примеры....

(1.2 тыс. баллов) 2 10 38
Добро пожаловать на Бредборд! Сайт вопросов и ответов на тему Arduino, Raspberry Pi и хоббийной электроники в целом. Цель Бредборда — быть максимально полезным. Поэтому мы строго следим за соблюдением правил, боремся с холиворами и оффтопиком.
  1. Тигрыч

    36 балл(ов)

  2. DmitrySadakov

    16 балл(ов)

  3. Un_ka

    13 балл(ов)

  4. anod

    9 балл(ов)

  5. parovoZZ

    9 балл(ов)

  6. Vitaliy-Sh

    5 балл(ов)

Награды месяца
1-е место: Arduino Due
2-е место: Arduino Mega 2560
3-е место: Iskra Mega

...