Может для Вас этот вопрос не сложный, но я нахожусь в тупике. Сколько не перепробовал проектов, новых идей, простых библиотек, а в итоге... ничего! Как-то раз кое-что получилось, и то с помощью двух хороших людей (vvr и geher). Сейчас попробовал создать библиотеку (если кто видел мои прошлые темы, Вы поймете, что было много разных попыток). В итоге получилась библиотека для невероятно примитивной функции - работы светодиодов... Вот список ошибок: C:\Users\Егор Ельцов\Documents\Arduino\libraries\GeneralF/GeneralF.h:5:0: error: unterminated #ifndef #ifndef GeneralF_h C:\Users\Егор Ельцов\Documents\Arduino\libraries\GeneralF/GeneralF.h:12:3: error: 'Public' does not name a type Public: C:\Users\Егор Ельцов\Documents\Arduino\libraries\GeneralF/GeneralF.h:13:22: error: expected ';' at end of member declaration Pin(int pin; int name); C:\Users\Егор Ельцов\Documents\Arduino\libraries\GeneralF/GeneralF.h:13:26: error: expected unqualified-id before ')' token Pin(int pin; int name); C:\Users\Егор Ельцов\Documents\Arduino\libraries\GeneralF/GeneralF.h:16:3: error: 'Private' does not name a type Private: C:\Users\Егор Ельцов\Documents\Arduino\libraries\GeneralF/GeneralF.h:25:3: error: 'Public' does not name a type Public: Вопросы: 1) В чём подвох, если вставки Public и Private используются постоянно? И объясните пожалуйста ошибки 1, 3 и 4. 2) Если нетрудно, подскажите какую-нибудь идею)
Тащите код сюда, покажем ошибки. Public и Private надо писать с маленькой буквы. Pin(int pin; int name); - параметры через запятую, а не точку с запятой. #ifndef GeneralF_h - забыли написать #endif в конце?
#ifndef GeneralF_h #define GeneralF_h // ОШИБКА #include "Arduino.h" class Led { Public: // ОШИБКА Pin(int pin; int name); // ОШИБКА void Full(); void NFull(); Private: // ОШИБКА int _pin; int _time; int _name; int _stop; }; class Termistor { Public: Private: }; #include "Arduino.h" #include "GeneralF.h" Led:in(pin; name) // Пины { #define name pin pinMode(pin; OUTPUT); } void Led::Full(name; time) // Постоянное горение { Led.Pin(pin; name); if(time=0) // Если вместо time стоит 0, { digitalWrite(pin; HIGH); // то горим до выключения платы } else // В другом случае { digitalWrite(pin; HIGH); // горим выделенное время delay(time); } } void Led::NFull(name; time; stop) // Мигание { Led.Pin(pin; name); digitalWrite(pin; HIGH); delay(time); digitalWrite(pin; LOW); delay(stop); } Здесь тоже исправлю! Спасибо!
Форматируйте код (Ctrl+T в Artduino IDE) и используйте тэг CODE для вставки на форум (кнопка с символами "<>" в редакторе сообщений).
А это уже отдельная тема! Каким образом можно писать библиотеки в IDE? Я уже везде обыскался с такими уроками. Вот те сайты: arduino.ru/.ua/.com, amperka, robocraft, habrahabr; просил Кирилла Короткова в ВК, чтобы кто-нибудь чего-нибудь сделал (прошло 2 месяца, а может и больше). В итоге получилось написать файл .h в WordPad, а .cpp в Блокноте. Ни там ни там форматирование не сохраняется. А кстати, можно ли с помощью функции ino писать коды и библиотеки в Microsoft Visual Studio 2015? Там надо будет писать такие же коды как в IDE, или на C++, C#, Basic, Java? Я просто еще не скачивал, но кажется это будет проще, чем возиться с разными программами.
Я отредактировал те файлы. Те ошибки исчезли, но появилась новая! Arduino: 1.6.0 (Windows 8), Плата"Arduino Uno" In file included from sketch_jun11a.ino:1:0: C:\Users\Егор Ельцов\Documents\Arduino\libraries\GeneralF/GeneralF.h:15:26: error: ISO C++ forbids declaration of 'Pin' with no type [-fpermissive] Pin(int pin, int name); Ошибка компиляции. Как её лечить будем?
Как и написано в сообщении об ошибке: укажем тип функции (возвращаемого значения) Pin. Если функция ничего не возвращает - тип void
Попробуйте, все таки, перевести ближе к тексту. Кстати, слово Pin может быть зарезервировано системой. Если это ВАША функция, смените ей название.
Этот код находится выше. Данная функция представляет собой функцию pinMode и #define, то есть пин и имя от define + постоянная функция OUTPUT (pinMode)
Это тоже находится выше... Megakoteyka: "Форматируйте код (Ctrl+T в Artduino IDE) и используйте тэг CODE для вставки на форум (кнопка с символами "<>" в редакторе сообщений)." Я: "А это уже отдельная тема! Каким образом можно писать библиотеки в IDE? Я уже везде обыскался с такими уроками. Вот те сайты: arduino.ru/.ua/.com, amperka, robocraft, habrahabr; просил Кирилла Короткова в ВК, чтобы кто-нибудь чего-нибудь сделал (прошло 2 месяца, а может и больше). В итоге получилось написать файл .h в WordPad, а .cpp в Блокноте. Ни там ни там форматирование не сохраняется. "
Код (Text): Led::Pin(pin; name) // Пины { #define name pin pinMode(pin; OUTPUT); } Это что еще за ересь?
Данная функция представляет собой функцию pinMode и #define, то есть пин и имя от define + постоянная функция OUTPUT (pinMode)