ошибка компиляции библиотеки

mihey78
Offline
Зарегистрирован: 04.10.2014

Здравствуйте, столкнулся с непонятной для меня прблемой при попытке создания библиотеки

Взял в интернете пример создания библиотеки и размести ее в папке Arduino_Projects\libraries\LED

//LED.h
#ifndef LED_h
#define LED_h
class LED{
  public:
    void begin(char PinToUse);
  private:
    char pin;
};
#endif

//LED.cpp
#include "Arduino.h"
#include "LED.h"

void LED::begin (char PinToUse){
  pin = PinToUse;
  pinMode(pin, OUTPUT);
}

Скетч компилируется без ошибок

Изменил имя класса, имена файлов и название папки с LED на JOY :

//JOY.h
#ifndef JOY_h
#define JOY_h
class JOY{
  public:
    void begin(char PinToUse);
  private:
    char pin;
};
#endif

//JOY.cpp
#include "Arduino.h"
#include "JOY.h"

void JOY::begin (char PinToUse){
  pin = PinToUse;
  pinMode(pin, OUTPUT);
}
Не работает!

Сам скетч:
#include <JOY.h>
#include <LED.h>

JOY jb;
LED ld;
void setup() {
    ld.begin(13);
    jb.begin(13);
}
void loop() {
}

Компилятор говорит:

Arduino: 1.8.8 (Windows 10), Плата:"Arduino/Genuino Uno"

C:\Users\admin\AppData\Local\Temp\cc35X7bg.ltrans0.ltrans.o: In function `setup':

D:\Electr\ARDUINO\Arduino_Projects\Joy_test\test/test.ino:8: undefined reference to `JOY::begin(char)'

collect2.exe: error: ld returned 1 exit status

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

Пожалуйста , подскажите, почему LED не вызывает ошибку, а JOY вызывает?
 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018
Алексей.
Алексей. аватар
Offline
Зарегистрирован: 02.02.2018

mihey78 пишет:
Взял в интернете пример создания библиотеки и размести ее в папке Arduino_Projects\libraries\LED
Не указан источник, откуда вы взяли пример? спрашивали ли вы там?  
На ардуино си си есть статья, которая так и называется "Написание библиотеки для Arduino" может не врут? Или нет доверия к первоисточникам?

mihey78
Offline
Зарегистрирован: 04.10.2014

Суть проблемы: при использовании для класса, фалов *.h *.cpp и паки, где все это лежит, имени LED ошибки нет, а при использовании имени JOY возникает ошибка. Кроме LED и JOY нет никаких различий.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

mihey78 пишет:

Кроме LED и JOY нет никаких различий.

Так не бывет.

Обратите внимание на пост #1 если хотите конструктивного разговора.

mihey78
Offline
Зарегистрирован: 04.10.2014

ЕвгенийП пишет:

mihey78 пишет:

Кроме LED и JOY нет никаких различий.

Так не бывет.

Обратите внимание на пост #1 если хотите конструктивного разговора.

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

bwn
Offline
Зарегистрирован: 25.08.2014

А кто мешает вставить, хоть после этого поста?

b707
Offline
Зарегистрирован: 26.05.2017

mihey78 пишет:

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

ну тогда прощайте, к сожалению помочь вам никто не сможет

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

mihey78 пишет:

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

Или Вы выкладываете ДВА кода с LED и JOY и ничем больше не отличающиеся, при этом один компилируется, а другой - нет.

Или, к сожалению, мы ничем не можем Вам помочь, разбирайтесь сами.

Алексей.
Алексей. аватар
Offline
Зарегистрирован: 02.02.2018

ЕвгенийП пишет:

mihey78 пишет:

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

Или Вы выкладываете ДВА кода с LED и JOY и ничем больше не отличающиеся, при этом один компилируется, а другой - нет.

Или, к сожалению, мы ничем не можем Вам помочь, разбирайтесь сами.

Я повторил этот опыт с файлами, никаких проблем со сборкой не получил. обидно даже..