29-12-2017, 17:13
Witam, dopiero co rozpoczynam swoją przygodę z Arduino, a potrzebuję napisać funkcję, która będzie mrugać diodą LED (dwa mignięcia, długa przerwa).
Problem w tym, że nie mogę zastosować delay (potrzebuję wielowątkowości), próbuję użyć do tego funkcji millis, ale po wgraniu skeczu dioda świeci w sposób ciągły.
Bardzo bym prosił o waszą pomoc, za którą z góry dziękuję.
Poniżej zamieszczam kod:
Problem w tym, że nie mogę zastosować delay (potrzebuję wielowątkowości), próbuję użyć do tego funkcji millis, ale po wgraniu skeczu dioda świeci w sposób ciągły.
Bardzo bym prosił o waszą pomoc, za którą z góry dziękuję.
Poniżej zamieszczam kod:
Kod:
#define LED_PIN 0
#define LED_ON_1 100
#define LED_OFF_1 500
#define LED_ON_2 700
#define LED_OFF_2 2300
unsigned long ms;
unsigned long msLast;
void setup()
{
pinMode(LED_PIN, OUTPUT);
}
void loop()
{
ms = millis();
blinkLED();
}
void blinkLED()
{
if (ms - msLast < LED_ON_1 ) {
digitalWrite(LED_PIN, HIGH);
}
if (LED_ON_1 <= ms - msLast < LED_OFF_1 ) {
digitalWrite(LED_PIN, LOW);
}
if (LED_OFF_1 <= ms - msLast < LED_ON_2 ) {
digitalWrite(LED_PIN, HIGH);
}
if (LED_ON_2 <= ms - msLast < LED_OFF_2 ) {
digitalWrite(LED_PIN, LOW);
}
if (ms - msLast == LED_OFF_2) {
msLast = ms;
}
}