Error fork was not declared in this scope

Ответили на вопрос 2 человека. Оцените лучшие ответы! И подпишитесь на вопрос, чтобы узнавать о появлении новых ответов.
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <sys/socket.h>
#include <sys/unistd.h>
#include <sys/types.h>
#include <sys/errno.h>
#include <netinet/in.h>
#include <signal.h>
#include <iostream>
#include <thread>

using namespace std;

#define BUFFSIZE 2048
#define DEFAULT_PORT 4001    //
#define MAXLINK 2048

void connecter()
{
    printf("Listening...n");
    while (true)
    {
        signal(SIGINT, stopServerRunning);    // 
        // 
        connfd = accept(sockfd, NULL, NULL);
        if (-1 == connfd)
        {
            printf("Accept error(%d): %sn", errno, strerror(errno));
            return -1;
        }
    }
}

void listener()
{
    while(true)
    {
        bzero(buff, BUFFSIZE);
        //
        recv(connfd, buff, BUFFSIZE - 1, 0);
        // 
        printf("клиент: %sn", buff);
        //
        send(connfd, buff, strlen(buff), 0);
    }
}

void sender()
{
    while(true)
    {
        printf("Please input: ");
        scanf("%s", buff);
        send(connfd, buff, strlen(buff), 0);
        bzero(buff, sizeof(buff));
        recv(connfd, buff, BUFFSIZE - 1, 0);
        printf("recv: %sn", buff);
    }
}

int sockfd, connfd; 
void stopServerRunning(int p)
{
    close(sockfd);
    printf("Close Servern");
    exit(0);
}
int main()
{
    struct sockaddr_in servaddr;
    char buff[BUFFSIZE];
    //
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (-1 == sockfd)
    {
        printf("Create socket error(%d): %sn", errno, strerror(errno));
        return -1;
    }
    // 
    // 
    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
    servaddr.sin_port = htons(DEFAULT_PORT);
    if (-1 == bind(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)))
    {
        printf("Bind error(%d): %sn", errno, strerror(errno));
        return -1;
    }
    // 
    //
    if (-1 == listen(sockfd, MAXLINK))
    {
        printf("Listen error(%d): %sn", errno, strerror(errno));
        return -1;
    }
    
    while(true)
    {
        thread my_thread(connecter);
        if(connfd == true)
            break;
    }

    thread my_thread(connecter);
    thread my_thread(listener);
    thread my_thread(sender);

    return 0;
}

}

это исходный код программы, хотел написать что-то вроде чата на сокетах. Я попытался скомпилировать код, но он мне выдал несколько ошибок «was not declared in this scope». Вот вывод компилятора:

server.cpp: In function ‘void connecter()’:
server.cpp:24:24: error: ‘stopServerRunning’ was not declared in this scope
   24 |         signal(SIGINT, stopServerRunning);    // Это предложение используется для выключения сервера при вводе Ctrl + C
      | 

server.cpp:26:9: error: ‘connfd’ was not declared in this scope
   26 |         connfd = accept(sockfd, NULL, NULL);
      |         ^~~~~~

server.cpp:26:25: error: ‘sockfd’ was not declared in this scope; did you mean ‘socket’?
   26 |         connfd = accept(sockfd, NULL, NULL);
      |                         ^~~~~~
      |                         socket

server.cpp: In function ‘void listener()’:
server.cpp:39:15: error: ‘buff’ was not declared in this scope
   39 |         bzero(buff, BUFFSIZE);
      |               ^~~~

server.cpp:41:14: error: ‘connfd’ was not declared in this scope
   41 |         recv(connfd, buff, BUFFSIZE - 1, 0);
      |              ^~~~~~

server.cpp: In function ‘void sender()’:
server.cpp:54:21: error: ‘buff’ was not declared in this scope
   54 |         scanf("%s", buff);
      |                     ^~~~

server.cpp:55:14: error: ‘connfd’ was not declared in this scope
   55 |         send(connfd, buff, strlen(buff), 0);
      |              ^~~~~~

я думаю, что все эти ошибки идут из одной проблемы, но не могу понять откуда

SergeyKagen

3 / 4 / 2

Регистрация: 02.04.2018

Сообщений: 315

1

19.04.2019, 22:16. Показов 132857. Ответов 14

Метки нет (Все метки)


Простой код, но Arduino IDE напрочь отказывается принимать переменные. Что за глюк или я что-то неправильно делаю?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void setup() {
  
  Serial.begin(9600);
  int count = 0;
  pinMode(7, INPUT);
  pinMode(13, OUTPUT);
 
}
 
void loop() {
 
  if( digitalRead(7) == HIGH ){ 
    
    while(1){ 
      delayMicroseconds(2); 
      count++;  
      if( digitalRead(7) == LOW ){ Serial.println(count); count = 0; break; }
      }
    }  
}

ошибка при компиляции «‘count’ was not declared in this scope», что не так?

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



marat_miaki

499 / 393 / 186

Регистрация: 08.04.2013

Сообщений: 1,695

19.04.2019, 23:26

2

Лучший ответ Сообщение было отмечено SergeyKagen как решение

Решение

C++
1
2
3
4
5
6
7
8
  int count = 0; //глобальная переменная
 
  void setup() {
   Serial.begin(9600);
  pinMode(7, INPUT);
  pinMode(13, OUTPUT);
 
}



1



Lavad

0 / 0 / 0

Регистрация: 03.10.2015

Сообщений: 25

14.09.2019, 22:33

3

Доброго времени суток!
У меня то же сообщение, но на функцию :-(
Создал функцию (за пределами setup и loop), которая только принимает вызов, ничего не возвращает:

C++
1
2
3
4
5
void myDispay(byte x, byte y, char str) {
  lcd.setCursor(x, y);
  lcd.print(temp, 1);   // выводим данные, с точностью до 1 знака после запятой
  lcd.print(str);   // выводим писанину
  }

В loop() делаю вызов:

C++
1
myDisplay(0,0,"C");

При компиляции выделяется этот вызов, с сообщением:

‘myDisplay’ was not declared in this scope

Замучился искать инфу о декларации/обьявлении функции. Везде, что находил, понимал одно: если ты вызываешь функцию, это и есть обьявление функции
Что делаю не так? В чем моя ошибка? Помогите, пожалуйста.

P.S. Код, что использовал в качестве функции, работоспособен. Раньше находился в loop(). Скетч постепенно разрастается, много однотипных обращений к дисплею…



0



Эксперт С++

8385 / 6147 / 615

Регистрация: 10.12.2010

Сообщений: 28,683

Записей в блоге: 30

14.09.2019, 23:57

4

Цитата
Сообщение от Lavad
Посмотреть сообщение

Создал функцию (за пределами setup и loop),

Перевидите на нормальный язык.
Какие еще пределы?

В другом файле что ли?

Добавлено через 1 минуту

Цитата
Сообщение от Lavad
Посмотреть сообщение

Замучился искать инфу о декларации/обьявлении функции. Везде, что находил, понимал одно: если ты вызываешь функцию, это и есть обьявление функции
Что делаю не так? В чем моя ошибка? Помогите, пожалуйста

Читать учебники по С++ не пробовали?

https://metanit.com/cpp/tutorial/3.1.php
http://cppstudio.com/post/5291/

Специфика Arduino лишь отличается тем что пред объявления не всегда нужны.

Добавлено через 7 минут
Кроме того иногда потеряй скобок {} приводят к таким ошибкам.



0



ValeryS

Модератор

Эксперт по электронике

8760 / 6550 / 887

Регистрация: 14.02.2011

Сообщений: 22,979

15.09.2019, 00:09

5

Цитата
Сообщение от Lavad
Посмотреть сообщение

Везде, что находил, понимал одно: если ты вызываешь функцию, это и есть обьявление функции

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

C++
1
void myDispay(byte x, byte y, char str);

а объявить уже в удобном месте



0



0 / 0 / 0

Регистрация: 03.10.2015

Сообщений: 25

15.09.2019, 00:48

6

Неделю назад ВПЕРВЫЕ включил Arduino Uno.
Задолго до этого писал программы под Windows (БейсикВизуал) и AVR (Basic, немного Assembler). Т.е. имеется некоторое представление об объявлении переменных, функций,… От Си всегда держался как можно дальше. Это первая и последняя причина «нечитания» книг по Си. За неделю экспериментов на Arduino мнение об этом пока не изменилось — легче вернуться к Ассму, чем копаться в Си.

Написал на том же языке, что и читал на всяких форумах и справочниках по Arduino :-). За пределами этих функций — значит не внутри них.

Обе приведенных Вами ссылок просмотрел, проверил в скетче… В итоге вылезла другая ошибка:
function ‘void myDisplay(byte, byte, char)’ is initialized like a variable

void myDisplay(byte x, byte y, char str) тоже пробовал. Та же ошибка.

Что не так на этот раз? :-(



0



Модератор

Эксперт по электронике

8760 / 6550 / 887

Регистрация: 14.02.2011

Сообщений: 22,979

15.09.2019, 01:26

7

Цитата
Сообщение от Lavad
Посмотреть сообщение

В итоге вылезла другая ошибка:
function ‘void myDisplay(byte, byte, char)’ is initialized like a variable

точку с запятой в конце поставил?



1



Lavad

0 / 0 / 0

Регистрация: 03.10.2015

Сообщений: 25

15.09.2019, 08:46

8

Вот скетч. Проще некуда.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <PCD8544.h>
 
float temp = 0;
static PCD8544 lcd;   // даем имя подключенному дисплею (lcd)
static const byte Lm35Pin = 14;   // аналоговый пин (A0) Arduino, к которому подключен LM35
 
//void myDisplay() = 0;
//void myDisplay(byte, byte, char, float) = 0;
//void myDisplay(byte x, byte y, char str, float temp) = 0;
 
void myDispay(byte x, byte y, char str, float temp) {
  lcd.setCursor(x, y);   // начиная с (x,y)...
  lcd.print(temp, 1);   // выводим temp
  lcd.print(str);   // выводим писанину
}
 
void setup() {
  lcd.begin(84, 48);   // инициализируем дисплей
  analogReference(INTERNAL);   // подключаем внутренний ИОН на 1.1V
}
 
void loop() {
  float temp = analogRead(Lm35Pin) / 9.31;  // подсчитываем температуру (в Цельсиях)...
  myDisplay(0, 0, "C", temp);   // отправляем данные на экран
  delay(500);   // ждем 500 мсек
}

Любое из трех так называемых «объявлений» (строки 7…9) выдает одну и ту же ошибку — я пытаюсь объявить функцию как переменную.

Добавлено через 9 минут
Попробовал так:

C++
1
void myDisplay(byte x, byte y, char str, float temp);

Компилятор задумался (я успел обрадоваться), но, зараза :-), он снова поставил свой автограф :-)

undefined reference to `myDisplay(unsigned char, unsigned char, char, float)

На этот раз он пожаловался на строку вызова функции.

Добавлено через 34 минуты
Когда что-то новое затягивает, забываешь о нормальном отдыхе, теряешь концентрацию…
Нашел ошибку. Чистейшая грамматика

C++
1
void myDispay(byte x,...

Dispay вместо Display

Добавлено через 8 минут
ValeryS, благодарю за попытку помощи!



0



ValeryS

Модератор

Эксперт по электронике

8760 / 6550 / 887

Регистрация: 14.02.2011

Сообщений: 22,979

15.09.2019, 10:36

9

Цитата
Сообщение от Lavad
Посмотреть сообщение

void myDisplay(byte, byte, char, float) = 0;

вот так не надо делать(приравнивать функцию к нулю)
так в классическом С++ объявляют чисто виртуальные функции, и класс в котором объявлена чисто виртуальная функция становится абстрактным. Означает что у функции нет реализации и в дочернем классе нужно обязательно реализовать функцию. А из абстрактного класса нельзя создать объект

Добавлено через 5 минут

Цитата
Сообщение от Lavad
Посмотреть сообщение

void myDispay(byte x, byte y, char str, float temp)

Цитата
Сообщение от Lavad
Посмотреть сообщение

myDisplay(0, 0, «C», temp);

просишь чтобы функция принимала символ char str, а передаешь строку "C"
или передавай символ

C++
1
myDisplay(0, 0, 'C', temp);

или проси передавать строку, например так

C++
1
void myDispay(byte x, byte y, char * str, float temp);



1



Avazart

Эксперт С++

8385 / 6147 / 615

Регистрация: 10.12.2010

Сообщений: 28,683

Записей в блоге: 30

15.09.2019, 12:02

10

Кроме того наверное лучше так:

C++
1
2
3
4
5
6
7
8
void myDispay(PCD8544& lcd,byte x, byte y, char str, float temp) 
{
  lcd.setCursor(x, y);   // начиная с (x,y)...
  lcd.print(temp, 1);   // выводим temp
  lcd.print(str);   // выводим писанину
}
 
myDisplay(lcd,0, 0, 'C', temp);

Тогда можно будет вынести ф-цию в отдельный файл/модуль.



1



locm

15.09.2019, 21:07

Не по теме:

Цитата
Сообщение от Lavad
Посмотреть сообщение

Arduino Uno.

Цитата
Сообщение от Lavad
Посмотреть сообщение

AVR (Basic, немного Assembler).

Arduino Uno это AVR, для которого можете писать на бейсике или ассемблере.



0



Avazart

15.09.2019, 21:21

Не по теме:

Цитата
Сообщение от locm
Посмотреть сообщение

Arduino Uno это AVR, для которого можете писать на бейсике или ассемблере.

Но лучше не надо …



0



Lavad

0 / 0 / 0

Регистрация: 03.10.2015

Сообщений: 25

16.09.2019, 12:12

13

Цитата
Сообщение от ValeryS
Посмотреть сообщение

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

Оказалось, что я верно понял чтиво по справочникам: если ты вызываешь функцию, это и есть обьявление функции. А сама функция может располагаться по скетчу в ЛЮБОМ месте (но за пределами setup, loop и любых других функций). И больше никаких специфических строк.

Цитата
Сообщение от ValeryS
Посмотреть сообщение

вот так не надо делать(приравнивать функцию к нулю)…

Методом проб и ошибок уже понял :-).

Цитата
Сообщение от ValeryS
Посмотреть сообщение

или передавай символ… 'C'

Если передаю в одинарных кавычках

более одного

символа, а функция ждет как char str, то выводятся на экран только самый правый из отправленных символов. Отправил «абв», а выводится «в».
Выкрутился, прописав в функции char str[], а символы отправляю через двойные кавычки.

Цитата
Сообщение от ValeryS
Посмотреть сообщение

или проси передавать строку, например так… char * str

Буквально вчера попалось это в справочнике, но как-то не дошло, что тоже мой вариант :-).

Цитата
Сообщение от Avazart
Посмотреть сообщение

Кроме того наверное лучше так:

C++
1
void myDispay(PCD8544& lcd,byte x, byte y, char str, float temp) {...}

Тогда можно будет вынести ф-цию в отдельный файл/модуль.

Благодарю за совет! Как-нибудь проверю…



0



Эксперт С++

8385 / 6147 / 615

Регистрация: 10.12.2010

Сообщений: 28,683

Записей в блоге: 30

16.09.2019, 12:54

14

Цитата
Сообщение от Lavad
Посмотреть сообщение

Оказалось, что я верно понял чтиво по справочникам: если ты вызываешь функцию, это и есть обьявление функции

Нафиг выкиньте эти справочники.
Почитайте мои ссылки.



0



0 / 0 / 0

Регистрация: 03.10.2015

Сообщений: 25

16.09.2019, 13:00

15

Ссылки Ваши добавлены в закладки. Время от времени заглядываю.
Но теория для меня — всего лишь набор понятий. Я же высказался после практической проверки. А как я понял, так оно и работает :-)



0



vladimir vm


  • #101

Да, микро библиотеки установлены, но к сожалению ошибка. Ошибка не в том, что их нет, а в том что повторное определение классе. Или я чего-то не понимаю

  • #102

может кто знает что это,
C:LightringsLightrings.ino:42:0: warning: «HIGH» redefined

#define HIGH 3

In file included from sketchLightrings.ino.cpp:1:0:

C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/Arduino.h:40:0: note: this is the location of the previous definition

#define HIGH 0x1

C:LightringsLightrings.ino:1366:0: warning: «FRAMES_PER_SECOND» redefined

#define FRAMES_PER_SECOND 40

C:LightringsLightrings.ino:216:0: note: this is the location of the previous definition

#define FRAMES_PER_SECOND 60

In file included from C:LightringsLightrings.ino:1:0:

C:Users����8881DocumentsArduinolibrariesFastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002

# pragma message «FastLED version 3.003.002»

^~~~~~~~~~~~~~~~~~~~~~~~~~~

C:LightringsLightrings.ino: In function ‘Twinkle()’:

C:LightringsLightrings.ino:1780:22: warning: iteration 124 invokes undefined behavior [-Waggressive-loop-optimizations]

if (redStates[l] > 1 || greenStates[l] > 1 || blueStates[l] > 1) {

~~~~~~~~~~~^

C:LightringsLightrings.ino:1779:28: note: within this loop

for(uint16_t l = 0; l < N_PIXELS_2; l++) {

Скетч использует 20218 байт (7%) памяти устройства. Всего доступно 253952 байт.
Глобальные переменные используют 1962 байт (23%) динамической памяти, оставляя 6230 байт для локальных переменных. Максимум: 8192 байт.

Старик Похабыч


  • #103

#define HIGH 3 вот это кто писал ?
HIGH уже описано как высокий уровень сигнала для выводов, на ряду с LOW
переопределение его может отразиться на работе проектов

  • #104

#define HIGH 3 вот это кто писал ?
HIGH уже описано как высокий уровень сигнала для выводов, на ряду с LOW
переопределение его может отразиться на работе проектов

,взял с ютуба ,люстру делаю замаялся уже,светодиоды просто горят иногда чет помаргивает,

Старик Похабыч


  • #105

Можно ссылку, что бы понятно было

Андрей К.


  • #107

дак вот если бы разбирался я в скетчах,

Старик Похабыч


  • #108

код у меня скомпилировался без предупреждений. для ардуион нано.

Но делать так крайне плохо.. даже в самом коде есть сторока
//digitalWrite(13, HIGH);
которая будет конфликтовать с определением

Исправить не сложно
#define HIGH 3
меняем на
#define M_HIGH 3

в тексте ищем «songmode» и в строках где есть HIGH меняем на M_HIGH
(строки 365, 1013)

  • #109

код у меня скомпилировался без предупреждений. для ардуион нано.

Но делать так крайне плохо.. даже в самом коде есть сторока
//digitalWrite(13, HIGH);
которая будет конфликтовать с определением

Исправить не сложно
#define HIGH 3
меняем на
#define M_HIGH 3

в тексте ищем «songmode» и в строках где есть HIGH меняем на M_HIGH
(строки 365, 1013)

хорошо,пробую

  • #110

исправил,сейчас вот что пишет,

C:LightringsLightrings.ino:1366:0: warning: «FRAMES_PER_SECOND» redefined

#define FRAMES_PER_SECOND 40

C:LightringsLightrings.ino:216:0: note: this is the location of the previous definition

#define FRAMES_PER_SECOND 60

In file included from C:LightringsLightrings.ino:1:0:

C:Users����8881DocumentsArduinolibrariesFastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002

# pragma message «FastLED version 3.003.002»

^~~~~~~~~~~~~~~~~~~~~~~~~~~

C:LightringsLightrings.ino: In function ‘Twinkle()’:

C:LightringsLightrings.ino:1780:22: warning: iteration 124 invokes undefined behavior [-Waggressive-loop-optimizations]

if (redStates[l] > 1 || greenStates[l] > 1 || blueStates[l] > 1) {

~~~~~~~~~~~^

C:LightringsLightrings.ino:1779:28: note: within this loop

for(uint16_t l = 0; l < N_PIXELS_2; l++) {

  • #111

код у меня скомпилировался без предупреждений. для ардуион нано.

Но делать так крайне плохо.. даже в самом коде есть сторока
//digitalWrite(13, HIGH);
которая будет конфликтовать с определением

Исправить не сложно
#define HIGH 3
меняем на
#define M_HIGH 3

в тексте ищем «songmode» и в строках где есть HIGH меняем на M_HIGH
(строки 365, 1013)

исправил,сейчас вот что пишет,

C:LightringsLightrings.ino:1366:0: warning: «FRAMES_PER_SECOND» redefined

#define FRAMES_PER_SECOND 40

C:LightringsLightrings.ino:216:0: note: this is the location of the previous definition

#define FRAMES_PER_SECOND 60

In file included from C:LightringsLightrings.ino:1:0:

C:Users����8881DocumentsArduinolibrariesFastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002

# pragma message «FastLED version 3.003.002»

^~~~~~~~~~~~~~~~~~~~~~~~~~~

C:LightringsLightrings.ino: In function ‘Twinkle()’:

C:LightringsLightrings.ino:1780:22: warning: iteration 124 invokes undefined behavior [-Waggressive-loop-optimizations]

if (redStates[l] > 1 || greenStates[l] > 1 || blueStates[l] > 1) {

~~~~~~~~~~~^

C:LightringsLightrings.ino:1779:28: note: within this loop

for(uint16_t l = 0; l < N_PIXELS_2; l++) {

Старик Похабыч


  • #112

У тебя стоит в настройках видимо стоит вывод сообщений компилятора по умолчанию. Но при этом скетч должен компилироваться и загружаться. Это все предупреждения… даже с просто HIGH бед M_HIGH должно загружаться.

Электрику проверить не могу, схему собирать не буду, не интересно, да и нет у меня лед нужных.

  • #113

У тебя стоит в настройках видимо стоит вывод сообщений компилятора по умолчанию. Но при этом скетч должен компилироваться и загружаться. Это все предупреждения… даже с просто HIGH бед M_HIGH должно загружаться.

Электрику проверить не могу, схему собирать не буду, не интересно, да и нет у меня лед нужных.

это значит не ошибки,работать должно да,сейчас соберу попробую

Старик Похабыч


  • #114

это предупреждение, тонкое место

  • #115

это предупреждение, тонкое место

подключил,непонятно че моргает,ни как на видео ,бред какой то только зря деньги потратил,ну ладно спасибо и на этом:)

Старик Похабыч


  • #116

ну на видео тоже не фонтан как бы… я не в восторге был, Гуверовская лента намотанная на обруч будет приятнее имхо

  • #117

ну на видео тоже не фонтан как бы… я не в восторге был, Гуверовская лента намотанная на обруч будет приятнее имхо

да у меня идея была полноценную люстру сделать

  • #118

Доброго времени суток, при загрузке любого скейтча даже пустого пишет:

C:UsersDellAppDataLocalTempccP0TDiY.ltrans0.ltrans.o: In function `main’:

C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/main.cpp:43: undefined reference to `setup’

C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/main.cpp:46: undefined reference to `loop’

collect2.exe: error: ld returned 1 exit status

exit status 1
Ошибка компиляции для платы Arduino Nano.

  • #119

Привет. Классная идея и достойный проект, зацепило)) Думаю не одного меня зацепило когда увидел отзывы на сайте Али)) вот только сам не программист и для меня дело не легкое) Хотя казалось бы все легко когда подключил светодиод и заставил его мигать. Думал будет так же и с лентой. Но вот уже целый день сижу колупаюсь в библиотеках и скетчах которые были в исходниках и у меня выдает постоянно одну ошибку которая тянет на все остальные вкладки. Может это я как-то криво поставил библиотеку какую-то? Или где-то в скетче нужно, что-то поменять? Такая ошибка только у меня вылезла? Кто-нибудь с такой проблемой сталкивался? Если можете помочь?

Arduino: 1.8.8 (Windows 7), Плата:»Arduino Nano, ATmega328P»
GyverMatrixOS_v1.12:51:24: error: ‘CRGB’ does not name a type; did you mean ‘OCR0B’?
#define GLOBAL_COLOR_1 CRGB::Green // основной цвет №1 для игр
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino:138:1: note: in expansion of macro ‘GLOBAL_COLOR_1’
utility:58:47: error: ‘CRGB’ has not been declared
void drawDigit3x5(byte digit, byte X, byte Y, CRGB color) {
utility:70:49: error: ‘CRGB’ has not been declared
void drawDigit3x5_s(byte digit, byte X, byte Y, CRGB COLOR) {
utility:82:47: error: ‘CRGB’ has not been declared
void drawDigit5x7(byte digit, byte X, byte Y, CRGB COLOR) {
utility:192:14: error: variable or field ‘fillAll’ declared void
void fillAll(CRGB color) {
utility:192:14: error: ‘CRGB’ was not declared in this scope
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12utility.ino:192:14: note: suggested alternative: ‘OCR0B’
void fillAll(CRGB color) {
OCR0B
utility:199:38: error: ‘CRGB’ has not been declared
void drawPixelXY(int8_t x, int8_t y, CRGB color)
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino: In function ‘void setup()’:
GyverMatrixOS_v1.12:208:3: error: ‘FastLED’ was not declared in this scope
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
GyverMatrixOS_v1.12:208:19: error: ‘WS2812’ was not declared in this scope
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino:208:19: note: suggested alternative: ‘CS12’
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
CS12
GyverMatrixOS_v1.12:26:21: error: ‘GRB’ was not declared in this scope
#define COLOR_ORDER GRB // РїРѕСЂСЏРґРѕРє цветов РЅР° ленте. Если цвет отображается некорректно — меняйте. Начать можно СЃ RGB
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino:208:36: note: in expansion of macro ‘COLOR_ORDER’
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino:26:21: note: suggested alternative: ‘DDRB’
#define COLOR_ORDER GRB // РїРѕСЂСЏРґРѕРє цветов РЅР° ленте. Если цвет отображается некорректно — меняйте. Начать можно СЃ RGB
ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino:208:36: note: in expansion of macro ‘COLOR_ORDER’
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
GyverMatrixOS_v1.12:208:49: error: ‘leds’ was not declared in this scope
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12GyverMatrixOS_v1.12.ino:208:49: note: suggested alternative: ‘secs’
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
secs
GyverMatrixOS_v1.12:208:80: error: ‘TypicalLEDStrip’ was not declared in this scope
FastLED.addLeds<WS2812, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12custom.ino: In function ‘void customModes()’:
сustom:70:42: error: ‘CRGB’ has not been declared
case 0: fillString(«РљР АСНЫЙ», CRGB::Red);
duinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12custom.ino: In function ‘void nextModeHandler()’:
custom:194:3: error: ‘FastLED’ was not declared in this scope
FastLED.clear();
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12custom.ino: In function ‘void prevModeHandler()’:
custom:202:3: error: ‘FastLED’ was not declared in this scope
FastLED.clear();
D:ArduinoGyverMatrixBT-masterfirmwareGyverMatrixOS_v1.12custom.ino: In function ‘void modeFader()’:
custom:218:7: error: ‘FastLED’ was not declared in this scope
FastLED.setBrightness(fadeBrightness);
ustom:231:7: error: ‘FastLED’ was not declared in this scope
FastLED.setBrightness(fadeBrightness);
и тд…..

Спасибо заранее))

  • #120

Спасибо, что откликнулись!
Однако, это всё, что есть… см. скрин

А, что там еще должно быть?

Возможно, есть ошибки с правами на файл/директорию? Владелец/чтение/запись? Проверьте, чтобы у вашего пользователя были права.
Вообще, вам, наверное, будет полезнее обратиться на форум людей, которые работают под линуксом. Удачно скомпилировать любой проект, а потом браться за лампу. Здесь, похоже, все на винде. А из специфического: вам нужно установить все библиотеки проекта и поддержку платформы esp8266. Под windows это делается в Arduino IDE, как показывал Алекс в видео.

Александр Симонов


  • #121

Доброго времени суток, при загрузке любого скейтча даже пустого пишет:

C:UsersDellAppDataLocalTempccP0TDiY.ltrans0.ltrans.o: In function `main’:

C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/main.cpp:43: undefined reference to `setup’

C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/main.cpp:46: undefined reference to `loop’

collect2.exe: error: ld returned 1 exit status

exit status 1
Ошибка компиляции для платы Arduino Nano.

Потому что скетч не может быть пустым. Когда в Arduino IDE созадёшь новый скетч, он разве пустой?

  • #122

Добрый день, друзья!

Огромное спасибо Алексею за идею и реализацию проекта!

Собрал макет устройства на столе, пока без ящика, концевиков, помпы и светодиодов. Протестировал. Пришло в голову несколько идей как улучшить работу устройства, как устранить небольшие баги. Если Алексей не будет возражать, выкладываю доработанный скетч.
Я использую Arduino Leonardo, поэтому есть изменения в подключениях в отличии от родного скетча:

  • Подключен экран LCD 1602 с I2C: SDA – 2 выход, SCL – 3 выход
  • Помпа перенесена с выхода 2 на выход 16

Что изменено, добавлено:

  • Адаптация под двух строчный (2стр*16 симв) дисплей lcd 1602 с I2C с драйверами с поддержкой русского языка.
  • Устранен баг неправильной отработки наливатора в случае если в процессе разлива менять режим (с Р на А и наоборот).
  • Устранен баг при котором если наливается уже вторая рюмка, то сняв налитую первую гусак резко отворачивается и проливает жидкость.
  • Устранен баг с отрицательным значением объема при вращении ручки энкодера.
  • Устранен баг, при котором таймер отключения устройства включался при наливе первой рюмки и при некоторых значениях мог приводить к внезапной парковке устройства в середине процесс разлива.
  • Сделан экран приветствия. На нем вы можете установить какое то сообщение, а так же кратковременно увидеть статистику по количеству включений устройства, кол-во рюмок и грамм жидкости.
  • Учитывается и выводится на экран количество рюмок и грам за сессию (с момента включения). Информация всегда на экране.
  • Учитывается и выводится на экран количество включений устройства, количество рюмок и количество грамм тотально (т.е. с момента первого включения устройства) + две строки доп информации на ваше усмотрение. Эта информация отображается там, где раньше были отрицательные значения объема (крутим ручку энкодера), а так же при старте устройства.
  • Записывает в постоянную память последнее установленное значение наливаемого объема. Т.е. если установить, например объем налива 35 гр, то после выключения и включения устройства начальный объем будет 35 гр.
  • Несколько других мелких исправлений.

Если будет желание – тестируйте, высказывает замечания.
Если будут баги – то сначала залейте скетч Алексея и посмотрите, есть ли этот те же баг в оригинальной прошивке.

Добрый день, Levonti!
попробовал запустить ваш скетч, выхлодит следующая ошибка. Насколько я понимаю, не хватает одной из библиотек. Что думаете по этому поводу?
Использую плату Бузина Нано (аналог оригинальной платы)
Аналогичная проблема была при загрузке оригинального скетча от Alex_gyver, однако здесь ошибка: a4′ was not declared in this scope.

Текст ошибки вашего скетча:

несколько библиотек найдено для «GyverTM1637.h»
GyverDrink_v1.0_levonti_debug_1602:58:20: error: EEPROM.h: No such file or directory

#include <EEPROM.h>

^

compilation terminated.

Используется: C:Program
Несколько библиотек найдено для «ServoSmooth.h»
Используется: C:Program
Несколько библиотек найдено для «Servo.h»
Используется: C:Program
Не используется: C:Program
Несколько библиотек найдено для «microLED.h»
Используется: C:Program
Несколько библиотек найдено для «LCD_1602_RUS.h»
Используется: C:Program
Несколько библиотек найдено для «LiquidCrystal_I2C.h»
Используется: C:Program
Не используется: C:UsersrootAppDataLocalArduino15packagesdigistumphardwareavr1.6.7librariesDigisparkLCD
Не используется: C:Program
Несколько библиотек найдено для «Wire.h»
Используется: C:UsersrootAppDataLocalArduino15packagesdigistumphardwareavr1.6.7librariesWire
exit status 1
EEPROM.h: No such file or directory

Александр Симонов


  • #124

Попробуй определение функции Q перенести выше setup-а

  • #125

Хочу научится програмированию на ардуино.
Купил китайскую UNO установил IDE решил залить скетч блинк(мигание диода) в результате компиляции получил
C:UsersLenovoAppDataLocalArduino15packagesarduinohardwareavr1.8.1coresarduino/Arduino.h:257:10: fatal error: pins_arduino.h: No such file or directory

#include «pins_arduino.h»

^~~~~~~~~~~~~~~~

compilation terminated.

exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno
Как я понял нет библиотеки pins_arduino.h подскажите как с этим бороться.
Заранее благодарю.

Понравилась статья? Поделить с друзьями:
  • Error occurred while fetching token from xbox secure token service
  • Error for site owner invalid domain for site key как исправить
  • Error object response
  • Error number 1021 mysql
  • Error not implemented navigation except hash changes