Nihhilistum
@Nihhilistum

Что не так с вызовом функций типа void в PlatformIO?

Пользуюсь PlatformIO для работы с Arduino. Когда использую в скетче функции типа void, компилятор выдаёт ошибку: 'screen_function' was not declared in this scope [20, 20]

вот сам скетч:

#include <Arduino.h>
#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>

#define button 2    
#define screenPower 9   //пин, отвечающий за питание дисплея
boolean powerFlag = 0;  //флаг переключения питания 

LiquidCrystal_PCF8574 lcd(0x27);

void setup(){
  pinMode(screenPower, OUTPUT);
  pinMode(button, INPUT_PULLUP);
}

void loop(){
   screen_function();  //здесь выдаёт ошибку
}

void screen_function(){    //вкл-выкл дисплея с помощью управления пином
  if (digitalRead(button) == LOW){  //использую подтяжку к земле, сигнал инвертируется
    powerFlag = !powerFlag;
    digitalWrite(screenPower, powerFlag);    
  }
}
  • Вопрос задан
  • 573 просмотра
Решения вопроса 1
myjcom
@myjcom Куратор тега C++
Нужно добавить предварительное объявление или определить функцию до её первого использования.

void screen_function(); // объявление
// ...
void loop(){
   screen_function(); // первое использование
}
// ...

void screen_function()
{
// ... определение
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы