c++ - 为 Arduino 编写自定义类时出现错误 'does not name type'

标签 c++ arduino

为 Arduino 编写新库后,编译器无法识别这个新类并返回错误,

BinaryCounter:15: error: 'Binary' does not name a type

以下是产生错误的文件。该类在 Binary.h 中定义,在 Binary.cpp 中实现,在 BinaryCounter.ino

中使用

二进制.h

#ifndef Binary_h
#define Binary_h

#include "Arduino.h"

class Binary {
  public:
    Binary (int pins[], int numPins);
    void display(int number);
    void clear();
  private:
    boolean *_values;
    int *_pins;
    int _numPins;
    void _update();
    void _setValues (int num);
};

#endif

二进制.cpp

#include "Binary.h"

Binary::Binary(int pins[], int numPins) {
  _values = new boolean[numPins];
  _pins = pins;
  _numPins = numPins;

  for (int i = 0; i < _numPins; i ++) {
    pinMode(_pins[i], OUTPUT);
    _values[i] = false;
  }

  _update();
}

void Binary::_update() {
  for (int i = 0; i < _numPins; i ++) {
    if (_values[i]) {
      digitalWrite(_pins[i], HIGH);
    } else {
      digitalWrite(_pins[i], LOW);
    }
  }
}

void Binary::_setValues (int num) {
  for (int i = 0; i < _numPins; i ++, num/=2) {
    _values[i] = ((num%2)==1);
  }
}

void Binary::display (int number) {
  _setValues(number);
  _update();
}

void Binary::clear() {
  display(0);
}

和 BinaryCounter.ino

#include <Binary.h>

int pins[] = {2,3,4,5,6};
int numPins = 5;

Binary dis(pins, numPins);

void setup() {
}

void loop() {  
  int loopEnd = 1<<numPins;
  for (int i = 0; i < loopEnd; i ++) {
    dis.display(i);
    delay(200);
  }
}

最佳答案

更改 <Binary.h>引用"Binary.h"在文件 BinaryCounter 中。

关于c++ - 为 Arduino 编写自定义类时出现错误 'does not name type',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10991317/

相关文章:

c++ - 指针和缓存利用率

c++ - Arduino:将函数传递给类,返回字符串

c - Bluez编程

c++ - AVR CTC 模式下的 16 位定时器

c++ - C++ 中的拉普拉斯矩阵计算

C++ 将 *this 传递给基本构造函数

c++ - 我应该如何用 * 框内的大写字母打印 HI?

c - 使用两个按钮去抖,用 Arduino 打开不同的 LED

python - 读取串口 - 在一定时间内忽略写入串口的部分数据

c# - C++/CLI System.Timers.Timer 在将 Interval 设置为 100ms 时已过去 20 秒