如何优化闪烁的Arduino代码,导致快速连续[关闭]

问题描述 投票:0回答:1

我已经编写了使LED快速连续闪烁的代码。如何优化?

我尝试了许多不同的方法,但没有比这更好的解决方案了。是否可以编写更优化的代码?

int delay_on = 150;
int delay_off = 0;
int change_dir = 1;
byte min_pin = 4;
byte max_pin = 13;

void setup(){
    byte x = max_pin;
    while(x > min_pin-1){
        pinMode(x, OUTPUT);
        x--;
    }
}

void led_blink(byte pin_number, int time_on, int time_off){
    digitalWrite(pin_number, HIGH);
    delay(time_on);
    digitalWrite(pin_number, LOW);
    delay(time_off);
}

void loop(){
    byte led_number = max_pin;
    while(led_number > min_pin-1){
        led_blink(led_number, delay_on, delay_off);
        led_number -= change_dir;
        if(led_number == min_pin or led_number == max_pin+1){
            change_dir *= -1;
        }
    }
}

我想使该程序尽可能地优化。代码是否已经优化,或者还有其他可以完成的工作?

optimization arduino
1个回答
0
投票

两件事:ArduinoIDE-examples-2.Digital-blinkwithoutdelay并实现这一逻辑。如果您希望稍后将该逻辑作为子例程,例如机器人,模型铁路,遥控/汽车或无人驾驶飞机也摆脱了while例程,因为它阻碍了处理。对于用例,我给出了一个坏主意作为示例

© www.soinside.com 2019 - 2024. All rights reserved.