+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 баллов) 4 10

2 Ответы

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

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

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

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

ledOn;

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

ledOn();

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

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

    69 балл(ов)

  2. Un_ka

    54 балл(ов)

  3. parovoZZ

    12 балл(ов)

  4. sser

    6 балл(ов)

  5. Тёмик

    5 балл(ов)

  6. NesteruS

    5 балл(ов)

Награды месяца
1-е место: OLED-дисплей (Troyka-модуль)
2-е место: Графический экран 128×64
3-е место: Текстовый дисплей 16×2 (Troyka-модуль)

...