Помогите с написанием библиотеки

Приветствую! Помогите, пожалуйста понять, будет ли работать моя библиотека?
Суть в том, чтобы просто написать таймеры на delay(), millis(), и micros() и вынести их в функции.
Ещё попрошу объяснять поподробнее, ибо я новичок.
Код моей библиотеки (называется “Arduinomod”):
Arduinomod.cpp:

#include "Arduino.h"
Arduinomod:: Arduinomod(int pin, active, inactive) {
  uint32_t ms, ms1 = 0;
  bool led_stat = true;
  pinMode(pin, 0x1);
  pin = _pin,
  active = _active,
  inactive = _inactive;
}

void Arduinomod::delayBlink() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}
void Arduinomod::millisBlink() {
  ms = millis();
  if ( ( ms - ms1 ) > 500 || ms < ms1 ) {
    ms1 = ms;
    digitalWrite(13, load);
    load = !led_stat;
  }
  void Arduinomod::microsBlink() {
    ms = micros();
    if ( ( ms - ms1 ) > 500 || ms < ms1 ) {
      ms1 = ms;
      digitalWrite(13, led_stat);
      load = !load;
    }

Arduinomod.h:

#include "Arduino.h"
#define delayBlink dblink
#define millisBlink mlsblink
#define microsBlink mcslink
class Arduinomod {
  publlic:
    Arduinomod(int pin, active, inactive);
    void delayBlink();
    private:
      int _pin, _active, _inactive;
    void millisBlink();
    private:
      int _pin, _active, _inactive;
    void microsBlink();
    private:
      int _pin, _active, _inactive;
};

А код по правилам вставить слабо?)))

P.S. Если что, можно здесь проверить , я сам пользуюсь
https://wokwi.com/

Извините, надо привыкнуть. Спасибо.

Штука прикольная, пригодится, но ничего для компиляции библиотек не нашёл.

А самому проверить? Кайзер запретил?
UPD: идея библиотеки гениальная

условие справа лишнее

Пишете код для проверки, библиотеку добавляете файлом(-ами), или копируете в новый

Спойлер

Для проверки - вывод в терминал, мигание диодом

С телефона выглядит по-другому. Что ж, буду знать, благодарю!

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

1 лайк

Это не верная реализация конструктора. Не знаю почему выше все это пропустили…
Догадайся почему такая реализация не верна.

Объявление тоже полнейший бред )))
Автор видимо и не пытался компилировать это…

Зачем? Не барское это дело! Пусть форумные нерды компилируют и всё разжёвывают.

Или для чего тогда форум?

У меня сгорела Arduino, а новая ещё не приехала. ПРОВЕРИТЬ НЕ НА ЧЕМ! Не факт, что работать будет правильно.
И для одарённых, которые читать не умеют, я писал, что я новичок. Это вы, видимо здесь все профессора поголовно.

“работать” - это следующий шаг.
Сейчас Ваша задача написать код, который компилируется.
Ардуина не нужна для этого.

1 лайк

Если я правильно понял, нужно скомпилировать файлы .cpp и .h?

ответ в #7

Нужно загуглить “Написание собственной библиотеки Ардуино”

Гуглил. В интернете по этой теме почти ничего, ну или просто я не понял.

Компилятор выдаёт множество ошибок типа “Не был объявлен в этой области”.
Разве имя библиотеки нужно объявлять как переменную?

Arduinomod.cpp:2: error: ‘Arduinomod’ does not name a type

Arduinomod:: Arduinomod(int pin, active, inactive) {

^

Arduinomod.cpp:11: error: ‘Arduinomod’ has not been declared

void Arduinomod::delayBlink() {

  ^

sketch\Arduinomod.cpp: In function ‘void delayBlink()’:

Arduinomod.cpp:12: error: ‘_pin’ was not declared in this scope

digitalWrite(_pin, HIGH);

            ^

Arduinomod.cpp:13: error: ‘_active’ was not declared in this scope

delay(_active);

     ^

Arduinomod.cpp:15: error: ‘_inactive’ was not declared in this scope

delay(_inactive);

     ^

sketch\Arduinomod.cpp: At global scope:

Arduinomod.cpp:17: error: ‘Arduinomod’ has not been declared

void Arduinomod::millisBlink() {

  ^

sketch\Arduinomod.cpp: In function ‘void millisBlink()’:

Arduinomod.cpp:18: error: ‘ms’ was not declared in this scope

ms = millis();

^

Arduinomod.cpp:19: error: ‘ms1’ was not declared in this scope

if ( ( ms - ms1 ) > 500) {

           ^

Arduinomod.cpp:21: error: ‘_pin’ was not declared in this scope

 digitalWrite(_pin, load);

              ^

Arduinomod.cpp:21: error: ‘load’ was not declared in this scope

 digitalWrite(_pin, load);

                    ^

Arduinomod.cpp:24: error: ‘Arduinomod’ has not been declared

void Arduinomod::microsBlink() {

    ^

Arduinomod.cpp:24: error: qualified-id in declaration before ‘(’ token

void Arduinomod::microsBlink() {

                           ^

Arduinomod.cpp:30: error: expected ‘}’ at end of input

 }

 ^

exit status 1
‘Arduinomod’ does not name a type

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

2 лайка