Замена delay() на millis() в Arduino IDE
Ниже приведен пример мигания светодиодом без использования delay() для Arduino IDE.
int gpio13Led = 13; int ledStateLow = LOW; // HIGH | LOW int ledState = ledStateLow; long previousMillis = 0; bool ledRun = false; void led(int count = 1, long interval = 60){ for (int i = 0; i < count; i++) { ledRun = true; while(ledRun){ unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; if (ledState == ledStateLow) { ledState = !ledState; digitalWrite(gpio13Led, ledState); } else { ledState = !ledState; digitalWrite(gpio13Led, ledState); ledRun = false; } } } } } void setup(void) { pinMode(gpio13Led, OUTPUT); digitalWrite(gpio13Led, ledStateLow); } void loop(void) { led(1); // led(3, 200); } |
Категория: Программирование
Комментари (0)
Trackback URL | Comments RSS Feed
Комментариев пока что нет. Вы будете первым!