arduino-c++ - 无法为 Encoder.h 构建包装类,在调用包装类构造函数之前调用了编码器构造函数
问题描述
这是我的MotorEncoder.h
#include <Encoder.h>
class MotorEncoder {
public:
MotorEncoder(int pin1, int pin2);
void init();
int read();
private:
int pin1;
int pin2;
Encoder encoder;
};
这是MotorEncoder.cpp
#include "MotorEncoder.h"
MotorEncoder::MotorEncoder(int pin1, int pin2) {
this->pin1 = pin1;
this->pin2 = pin2;
this->encoder = Encoder(pin1, pin2);
}
void MotorEncoder::init() {
}
int MotorEncoder::read() {
}
我总是收到一个错误,指出我用 0 个参数调用编码器。
In file included from src/encoder/MotorEncoder.h:5:0,
from src/encoder/MotorEncoder.cpp:1:
/Users/slawalata/.platformio/lib/Encoder_ID129/Encoder.h:72:2: note: candidate: Encoder::Encoder(uint8_t, uint8_t)
Encoder(uint8_t pin1, uint8_t pin2) {
^
/Users/slawalata/.platformio/lib/Encoder_ID129/Encoder.h:72:2: note: candidate expects 2 arguments, 0 provided
它在编译时间中断。我根本没有调用这个构造函数。
提前谢谢了。
解决方案
基于此链接,我将代码更改为:
电机编码器.h
class MotorEncoder {
public:
MotorEncoder(int pin1, int pin2);
void init();
int read();
private:
int pin1;
int pin2;
Encoder* encoder;
};
电机编码器.cpp
MotorEncoder::MotorEncoder(int pin1, int pin2) {
this->pin1 = pin1;
this->pin2 = pin2;
this->encoder = new ::Encoder(pin1, pin2);
}
void MotorEncoder::init() {
}
int MotorEncoder::read() {
return encoder->read();
}
非常感谢,
推荐阅读
- python - 运行时出现 InvalidArgumentError :model.train_and_evaluate()
- excel - 在用户表单中,当我遇到空格时,我只想给出一条错误消息,只删除空格?
- jenkins - 从jenkins groovy调用windows sc命令时提示访问被拒绝
- r - 如何在 ggplot2 中创建“进度条”类型的图表来显示一个人所在的百分位数?
- wordpress - 我可以为 PDF、视频、图像等文档创建自定义帖子类型吗?WordPress
- typescript - 如何包含 node_modules 以捆绑生产?
- openmodelica - 我在哪里可以找到 OMSimulator (OpenModelica) 中的协同仿真模型的 lua 脚本?
- jquery - 如何在带有 html、css 的幻灯片上使用半图像?
- python - 梳子:任何大于 40 的值都会返回无穷大?不知道为什么
- powershell - 如何使用 CSV 文件使用 Powershell 创建团队