【发布时间】:2018-05-25 00:58:28
【问题描述】:
我正在使用 MATLAB 来控制 neopixel LED 灯条,但我遇到了一些奇怪的行为,我不确定问题可能是什么。我有以下两个功能:
function flicker(neostrip, ledNum, sec)
if any(neostrip.readColor(ledNum))
writeColor(neostrip, ledNum, [1 1 1]);
delay(sec);
else
writeColor(neostrip, ledNum, [0 0 0]);
delay(sec);
end
end
function delay(seconds)
% function pause the program
% seconds = delay time in seconds
tic;
while toc < seconds
end
end
我已经有一个名为 neostrip 的 Neopixel 对象,并且我可以从命令行使用 writeColor(neostrip, 1, [1 1 1]); 控制 Neopixel LED,但是当我运行 flicker() 函数时,板载 Arduino LED 会闪烁而不是我的Neopixel LED。
有什么想法吗? writeColor() 函数似乎在我的 flicker() 函数之外工作得很好,所以我不确定我的问题来自哪里。我认为通过值或引用传递可能存在问题,但我不确定为什么在我的函数内部调用 writeColor() 时代码突然在 Arduino 内置 LED 上执行。
【问题讨论】:
标签: matlab arduino pass-by-reference pass-by-value