gpt4 book ai didi

arduino - 在 for 循环结束时延迟

转载 作者:行者123 更新时间:2023-12-02 22:25:58 27 4
gpt4 key购买 nike

我编写了以下代码来一次点亮一排 LED。

int ledPins[] = {7,8,9,10,11,12,13};

void setup() {
for (int i = 0; i < sizeof(ledPins); i++) {
pinMode(ledPins[i], OUTPUT);
}
}

void loop() {
for (int i = 0; i < sizeof(ledPins); i++) {
digitalWrite(i, HIGH);
delay(1000);
digitalWrite(i, LOW);
delay(1000);
}
}

以上工作正常。然而,在完成 for 循环之后,在它重复之前会有很长的延迟(大约 10 秒)。

为什么会有这么长的延迟?这是预期的还是我的代码有问题?

最佳答案

函数sizeof(array) 返回数组在内存中的大小,以字节为单位。并且因为 sizeof(int) 可能不是 1,所以您得到的值比预期的要大。

sizeof 可用于确定数组中元素的数量,方法是将整个数组的大小除以单个元素的大小。

所以这一行:

for (int i = 0; i < sizeof(ledPins); i++) {

应该重写为:

for (int i = 0; i < sizeof(ledPins) / sizeof(int); i++) {

见: http://en.wikipedia.org/wiki/Sizeof

关于arduino - 在 for 循环结束时延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12973513/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com