Address strip WS2812B: различия между версиями

Строка 43: Строка 43:
#include <Arduino.h>
#include <Arduino.h>
#define LED_PIN    2
#define LED_PIN    2
int led_status = 0;
int led_status = HIGH;


void ledUpdate() {
void ledUpdate(int v) {
   digitalWrite(LED_PIN, led_status);
   digitalWrite(LED_PIN, v);
}
 
void ledToggle() {
  switch (led_status)
  {
  case 1:
    led_status = 0;
    break; 
  default:
    led_status = 1;
    break;
  }
  ledUpdate();
}
}


void ledBlink( void * parameter ) {
void ledBlink( void * parameter ) {
   const TickType_t xDelay = 1000 / portTICK_PERIOD_MS;
   const TickType_t xDelay = 1000 / portTICK_PERIOD_MS;
   while(1) {
   for(;;) {
     ledToggle();
     switch (led_status)
    {
    case HIGH:
      led_status = LOW;
      break; 
    default:
      led_status = HIGH;
      break;
    }
    ledUpdate(led_status);
     vTaskDelay(xDelay);
     vTaskDelay(xDelay);
    Serial.printf("blink %d\n", led_status);
   }
   }
}
}


void setupLedBlink()  {
    pinMode(LED_PIN, OUTPUT);


void setup() {
     xTaskCreate(
     xTaskCreate(
                     ledBlink,          /* Task function. */
                     ledBlink,          /* Task function. */
Строка 79: Строка 77:
                     1,                /* Priority of the task. */
                     1,                /* Priority of the task. */
                     NULL);            /* Task handle. */
                     NULL);            /* Task handle. */
}
void setup() {
    setupLedBlink();
}
}


123

правки