Инициализация библиотеки в setup()

Тема в разделе "Arduino & Shields", создана пользователем Arduiner001, 5 дек 2017.

  1. Arduiner001

    Arduiner001 Гик

    Имеется такой код:
    Код (C++):
    #include <Filters.h>

    FilterOnePole flp[64];

    void setup(){
      //тут я провожу некоторые вычисления
      for(int i = 0; i < 64; i++){
        //тут надо инициализировать объект
      }
    }

    void loop(){
    }
    Как видите, задача сводится к тому, чтобы инициализировать объект из массива в setup(). Спасибо.
     
  2. DIYMan

    DIYMan Guest

    Зависит от реализации класса FilterOnePole. Допустим, он имеет функцию setup:
    Код (C++):
    #include <Filters.h>

    FilterOnePole flp[64];

    void setup()
    {
      //тут я провожу некоторые вычисления
      for(int i = 0; i < 64; i++)
      {
        //тут надо инициализировать объект
        flp[i].setup(....);
      }
    }

    void loop()
    {
    }
    Допустим, что класс FilterOnePole не имеет конструктора без параметров, тогда:
    Код (C++):
    #include <Filters.h>

    FilterOnePole* flp[64];

    void setup()
    {
      //тут я провожу некоторые вычисления
      for(int i = 0; i < 64; i++)
      {
     
        //тут надо инициализировать объект
        flp[i] = new FilterOnePole(parameters);
       
        flp->someMethodName();
      }
    }

    void loop()
    {
    }
     
  3. Arduiner001

    Arduiner001 Гик

    Спасибо. Такой код
    Код (C++):
    #include <Filters.h>

    FilterOnePole* flp[64];

    void setup()
    {
      for(int i = 0; i < 64; i++)
      {
        flp[i] = new FilterOnePole(LOWPASS, 5.0);
        flp->input(1);
      }
    }

    void loop()
    {
    }
    Выдаёт ошибку
     
  4. Arduiner001

    Arduiner001 Гик

    А, точно! flp - массив, поэтому надо написать
    Код (C++):
    #include <Filters.h>

    FilterOnePole* flp[64];

    void setup()
    {
      for(int i = 0; i < 64; i++)
      {
        flp[i] = new FilterOnePole(LOWPASS, 5.0);
        flp[i]->input(1);
      }
    }

    void loop()
    {
    }
     
  5. DIYMan

    DIYMan Guest

    Ну вот видите, сами и нашли мою ошибку. Писал быстро, бывает.