#1 2016-01-29 14:15:20

Arduino#child
Учасник
Зареєстрований: 2016-01-29
Повідомлень: 2

Создание своей библиотеки

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

Прошу помощи специалистов, спасибо.

// MyClass.h

#ifndef _MYCLASS_h
#define _MYCLASS_h

#if defined(ARDUINO) && ARDUINO >= 100
	#include "arduino.h"
#else
	#include "WProgram.h"
#endif

#include <SoftwareSerial.h>

class MyClass
{
 private:
	 static SoftwareSerial _mySerial;

 public:
	 MyClass(int rxD, int txD);
	 void init();
};

#endif
// MyClass.cpp
#include "MyClass.h"

MyClass::MyClass(int rxD, int txD)
{
	_mySerial = SoftwareSerial(rxD, txD);
}

void MyClass::init()
{
        _mySerial.begin(9600);

}

и все вроде неплохо, до момента как инициализирую свой клас в скетче...

#include "MyClass.h"

#define RxD 10
#define TxD 11

MyClass mcc(RxD, TxD);

void setup()
{
	mcc.init();
}

void loop()
{

}

ошибка

collect2.exe*:error: ld returned 1 exit status
Error creating .elf

Надеюсь на вашу помощь, спасибо...

Остання редакція Arduino#child (2016-01-29 15:25:29)

Неактивний

#2 2016-01-29 15:40:04

Йожэг
Учасник
Зареєстрований: 2015-12-30
Повідомлень: 97

Re: Создание своей библиотеки

Там ещё много всяких ошибок пишется, если прокрутить вывод.

Если убрать "static" из "private:  static SoftwareSerial _mySerial;", то уйдут, например, ошибки "undefined reference to `MyClass::_mySerial'".

Неактивний

#3 2016-01-29 15:58:19

Йожэг
Учасник
Зареєстрований: 2015-12-30
Повідомлень: 97

Re: Создание своей библиотеки

Есть тут хитрость http://stackoverflow.com/questions/1316 … an-arduino
т.е. в вашем коде тогда надо писать как-то так:
"MyClass::MyClass(int rxD, int txD) : _mySerial(rxD, txD) { }"

Неактивний

#4 2016-01-29 16:03:59

Arduino#child
Учасник
Зареєстрований: 2016-01-29
Повідомлень: 2

Re: Создание своей библиотеки

Спасибо, попробую)

Работает.

Остання редакція Arduino#child (2016-01-29 16:24:06)

Неактивний

Швидке повідомлення

Введіть повідомлення і натисніть Надіслати

Підвал форуму