我已经编写了使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;
}
}
}
我想使该程序尽可能地优化。代码是否已经优化,或者还有其他可以完成的工作?
两件事:ArduinoIDE-examples-2.Digital-blinkwithoutdelay并实现这一逻辑。如果您希望稍后将该逻辑作为子例程,例如机器人,模型铁路,遥控/汽车或无人驾驶飞机也摆脱了while例程,因为它阻碍了处理。对于用例,我给出了一个坏主意作为示例