【发布时间】:2019-01-24 09:01:36
【问题描述】:
我尝试使用库 digitalWriteFast 来控制多个电机和编码器。该库仅使用定义为 const int 的引脚。我正在处理的一个最小示例如下所示:
// digitalWriteFast from:
// https://github.com/NicksonYap/digitalWriteFast
#include <digitalWriteFast.h>
// setup for motors
const int m_1[] = {A0, A4, 23, 24};
const int m_2[] = {A1, A5, 22, 25};
void motor_setup(const int id) {
pinModeFast(m_1[id], OUTPUT);
digitalWriteFast(m_1[id], HIGH);
pinModeFast(m_2[id], OUTPUT);
digitalWriteFast(m_2[id], HIGH);
}
void motor_forwards(const int id) {
digitalWriteFast(m_1[id], LOW);
digitalWriteFast(m_2[id], HIGH);
}
void setup() {
motor_setup(0);
//motor_setup(1);
}
void loop() {
motor_forwards(0);
//motor_forwards(1);
}
代码仅使用一台电机编译。如果您取消注释 //motor_setup(1); 和 //motor_forwards(1); 行,则会引发错误:
Call to 'NonConstantUsed' declared with attribute error:
我曾尝试先使用类,但我无法将 const int 传递给实例。关于这个主题有什么想法吗?
【问题讨论】:
-
我对arduino一无所知,但看起来一半的错误消息丢失了?通常在冒号后面跟着一些东西。如果缺少某些内容,请您添加它并将错误消息格式化为代码。这更具可读性。
-
非常感谢您的回答。不幸的是,错误消息到此结束。 (即使启用了高级错误消息)
标签: list arduino int constants