+1 голос

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

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

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

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

(37 баллов) 2 8

2 Ответы

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

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

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

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

ledOn;

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

ledOn();

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

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

    70 балл(ов)

  2. Un_ka

    64 балл(ов)

  3. sser

    38 балл(ов)

  4. Тигрыч

    10 балл(ов)

  5. Kiprais

    9 балл(ов)

  6. N08I40K

    8 балл(ов)

Награды месяца
1-е место: Raspberry Pi 3 Model A+
2-е место: Raspberry Pi Zero W
3-е место: Raspberry Pi Zero

...