Библеотека

Тема в разделе "Микроконтроллеры AVR", создана пользователем Беженарь Миша, 6 авг 2014.

    1. Здравствуйте. Скажите пожалуйста, а как можно создать библеотеку на маке ?
     
  1. ZaikaBlogs

    ZaikaBlogs Нерд

    У меня тотже вопрос :)
     
  2. acos

    acos Официальный гик Администратор

    Да и мне интересно) А в чём собственно проблема?
     
  3. ZaikaBlogs

    ZaikaBlogs Нерд

    Как сделать библиотеку для ардуино в MacOS
     
  4. также как и в линукс, ось тут каким боком участвует??
     
  5. acos

    acos Официальный гик Администратор

  6. ZaikaBlogs

    ZaikaBlogs Нерд

    А можно для тупых :)))))
     
  7. acos

    acos Официальный гик Администратор

    Создаёте в директории %Sketchbook%\Arduino\libraries папочку с названием вашей библиотеки (название состоит только из латинских букв и цифр, не может начинаться с цифры). Пусть это будет circleArea
    заходим в %Sketchbook%\Arduino\libraries\circleArea и создаём там два файла:
    circleArea.h - заголовочный файл
    circleArea.cpp - файл непосредственно с кодом.
    Открываем circleArea.h и пишем там:
    Код (C):

    #include <inttypes.h> // пригодится, мы будем использовать числовые типы

    #define PI 3.14         //куча знаков нам ни к чему

    //Объявляем нашу библиотечную функцию, ради которой все и затевалось
    float circleArea(float radius);
     
    сохраняем, закрываем.
    Отрываем circleArea.cpp и пишем там:
    Код (C):

    #include <inttypes.h> // пригодится, мы будем использовать числовые типы
    #include <Arduino.h> // ЕМНИП pow() отсюда
    #include <circleArea.h> // тут наши дефайны и объявления

    //Реализуем нашу библиотечную функцию, ради которой все и затевалось

    float circleArea(float radius)
    {
        return PI*pow(radius, 2);
    }

     
    сохраняем. Открываем Arduino и пишем
    Код (C):


    #include <circleArea.h>
    void setup() {
      // put your setup code here, to run once:
        Serial.begin(9600);
    }

    void loop() {
      // put your main code here, to run repeatedly:

        for (int i=1; i<5; ++i ) {
            Serial.print("circle area with radius ");
            Serial.print(i);
            Serial.print(" = ");
            Serial.println(circleArea(i));
        }
    }
     
    Как-то так. Ну ещё можно зайти в C:\Program Files (x86)\Arduino\libraries (не знаю где это в маках:)) и посмотреть - как там реализованы библиотеки. можно найти много интересного
     
    Последнее редактирование: 12 авг 2014
    Беженарь Миша и Megakoteyka нравится это.
  8. ZaikaBlogs

    ZaikaBlogs Нерд

    Примерно там;))))
     
    Беженарь Миша нравится это.
  9. acos

    acos Официальный гик Администратор

  10. Ребят я вроде создал библиотеку. При запуске Arduino.IDE(1.0.3) мне всплывают следующие сообщения: Снимок экрана 2015-12-28 в 23.12.36.png Снимок экрана 2015-12-28 в 23.12.36.png .
    Что не так? Имя вроде подходит. Я сейчас лазял по сайтам, книгам и заметил что везде говорят "фаилы", а я при создание использовал. Это имеет значение или нет?
     

    Вложения:

    Последнее редактирование: 29 дек 2015
  11. Ребят я уже долго пытаюсь создать библиотеку. В этой библиотеке должна содержаться программа по управлению 2-ух колёсным роботом вот сам код:
    Код (C++):

    int leftDirPin = 4;
    int leftSpeedPin = 5;

    int rightDirPin = 7;
    int rightSpeedPin = 6;

    int runSpeed = 50;

    void setupMotorShield()
    {
        pinMode(leftDirPin, OUTPUT);
        pinMode(leftSpeedPin, OUTPUT);
        pinMode(rightDirPin, OUTPUT);
        pinMode(rightSpeedPin, OUTPUT);
    }

    void go()
    {
        analogWrite(leftSpeedPin, runSpeed);
        analogWrite(rightSpeedPin, runSpeed);
    }

    void stop()
    {
        analogWrite(leftSpeedPin, 0);
        analogWrite(rightSpeedPin, 0);
    }

    void goForward()
    {
        digitalWrite(leftDirPin, HIGH);
        digitalWrite(rightDirPin, HIGH);
        go();
    }

    void turnLeft()
    {
        digitalWrite(leftDirPin, LOW);
        digitalWrite(rightDirPin, HIGH);
        go();
    }

    void turnRight()
    {
        digitalWrite(leftDirPin, HIGH);
        digitalWrite(rightDirPin, LOW);
        go();
    }
     
    Везде по сайтам лазял. Везде одно и тоже.
    Я уже очень долго пытаюсь создать библиотеку.ПОМОГИТЕ и ОБЪЯСНИТЕ КАК ЕЁ ДЕЛАТЬ!!!
     
  12. AlexVS

    AlexVS Гик

    http://forum.amperka.ru/threads/Библеотека.3398/#post-27105
    См. сообщение №8 - там просто, но подробно изложено. Как еще объяснять?
    Создаете h-файл, содержащий объявления функций библиотеки, далее создаете c-файл, в котором находятся сами функции. В общем то - ВСЕ!
     
  13. MESS

    MESS Гик

    Оба файла библиотеки .h и .cpp нужно поместить в папку и дать ей имя без точки. Саму папку загрузить в папку library Ардуино, где остальные.
     
  14. DrProg

    DrProg Вечный нерд

    Упрощенная альтернатива: сохранить эти функции в текстовом файле (например, с расширением .h), копировать этот файл в папку со скетчем и в его начале подключать упомянутый файл при помощи:
    Код (C++):
    #include "XXXXX.h"
    По сути та же библиотека, только на ее создание потратите 5 минут. Для личного пользования (и не только) вполне пригодно.
     
    ИгорьК и MESS нравится это.