| 1 | #include <Arduino.h> |
|---|
| 2 | |
|---|
| 3 | #define LED1 15 |
|---|
| 4 | #define LED2 17 |
|---|
| 5 | |
|---|
| 6 | TaskHandle_t xHandle_1 = NULL; |
|---|
| 7 | |
|---|
| 8 | void vBlink1Task(void * pvParameters){ |
|---|
| 9 | while(true){ |
|---|
| 10 | digitalWrite(LED1, !digitalRead(LED1)); |
|---|
| 11 | vTaskDelay(1000 / portTICK_PERIOD_MS); |
|---|
| 12 | } |
|---|
| 13 | } |
|---|
| 14 | |
|---|
| 15 | void vBlink2Task(void *pvParameters){ |
|---|
| 16 | int n = 0; |
|---|
| 17 | while(true){ |
|---|
| 18 | digitalWrite(LED2, !digitalRead(LED2)); |
|---|
| 19 | vTaskDelay(100 / portTICK_PERIOD_MS); |
|---|
| 20 | if(n++ > 50) { |
|---|
| 21 | digitalWrite(LED2, LOW); |
|---|
| 22 | vTaskDelete( xHandle_1 ); |
|---|
| 23 | } |
|---|
| 24 | } |
|---|
| 25 | } |
|---|
| 26 | |
|---|
| 27 | void setup() { |
|---|
| 28 | Serial.begin(115200); |
|---|
| 29 | pinMode(LED1, OUTPUT); |
|---|
| 30 | pinMode(LED2, OUTPUT); |
|---|
| 31 | xTaskCreate(vBlink1Task, "vBlink1Task", 1024, NULL, tskIDLE_PRIORITY, NULL); |
|---|
| 32 | xTaskCreate(vBlink2Task, "vBlink2Task", 1024, NULL, tskIDLE_PRIORITY+1, &xHandle_1); |
|---|
| 33 | |
|---|
| 34 | } |
|---|
| 35 | |
|---|
| 36 | void loop() { } |
|---|