结构和arduino

Luc*_*cia 3 arrays struct arduino

我试图使用结构与Arduino和我是初学者,我不知道如何在结构中声明一个数组并使用它(int pin[5]和int vecinos[6]).谢谢!!!露西亚

typedef struct 
{
  int id;
  int pin[5];
  int tiempoCero;
  int tiempoApagado;
  int estado;
  int vecinos[6];
} zonas;

zonas zona[5];
Run Code Online (Sandbox Code Playgroud)

Udo*_*ein 8

你的声明没问题.但是,您需要了解Arduino IDE会自动为您生成函数原型.不幸的是,IDE做得很差.它在声明之前将生成的原型排序到顶部.因此,您不能在任何函数定义中使用它们.除非您阻止IDE自动生成原型.

我找到了三种方法来实现这一目标:

  1. 将您的函数放入命名空间,即使在INO文件中也可以完全控制.
  2. 将您的函数移动到包含文件中
  3. 将您的函数包装到宏中,以便IDE不再将其识别为函数.比如TRICK17宏

对于小文件,我首选的解决方案是#1.那你的草图就是

namespace whatever {
    typedef struct 
    {
      int id;
      int pin[5];
      int tiempoCero;
      int tiempoApagado;
      int estado;
      int vecinos[6];
    } zonas;

    function example(zonas z) {
        ...
    }
}

void setup() { 
    ... 
}
void loop() { 
    whatever::zonas z;
    ...
    whatever::example(z);
}
Run Code Online (Sandbox Code Playgroud)

举个广泛的例子 这里有.

  • 我认为Arduino'_IDE_'值得为最糟糕的"广泛使用的"10年代IDE而获奖. (4认同)