即使初始条件为true,也不会输入for循环

时间:2019-05-07 20:52:59

标签: c++ for-loop arduino-c++

我具有以下功能,其中包含for循环。该代码在Arduino上运行,并且Serial.print函数显示该函数已使用正确的输入值正确输入。但是没有输入for循环。有谁知道为什么?

void openvalveCold(int steps){
    Serial.println(steps);

    // Steps is confimed to be 200. 
    digitalWrite(sleep1,HIGH);

    for (antalsteg = 0; antalsteg == steps; antalsteg++)
    {  
        Serial.println("2");  

        //digitalWrite(dir1,HIGH);
        digitalWrite(stepp1,HIGH);

        delay(25);
        digitalWrite(stepp1,LOW);
        delay(25);
        Serial.println(antalsteg);

        nr_of_steps_cold++;
    }
}

void loop{
    // calling on function
    openvalveCold(200);
}

2 个答案:

答案 0 :(得分:4)

for循环通常是这样构造的:

for(init counter; condition; increase counter)

您已经做出了(false)假设,它会循环直到条件为true。错了它会在循环时显示,这是真的。更改为:

for (antalsteg = 0; antalsteg < steps; antalsteg++)

答案 1 :(得分:3)

未输入循环,因为循环开始时条件为假:

for (antalsteg = 0; antalsteg == steps; antalsteg++)

第一次评估循环的条件时,antalsteg为0,steps为200。因此,antalsteg == steps评估为0 == 200,这是错误的。因此永远不会进入循环。