#include <Arduino.h>
TaskHandle_t task1Handle = NULL; // Handle untuk task1
TaskHandle_t task2Handle = NULL; // Handle untuk task2
// Task dengan prioritas tinggi
void task1(void *parameter) {
while (1) {
Serial.println("Task 1 (High Priority) is running.");
vTaskDelay(1000 / portTICK_PERIOD_MS); // Delay 1 detik
}
}
// Task dengan prioritas rendah
void task2(void *parameter) {
while (1) {
Serial.println("Task 2 (Low Priority) is running.");
vTaskDelay(2000 / portTICK_PERIOD_MS); // Delay 2 detik
// Mengganti prioritas task1 menjadi lebih rendah
vTaskPrioritySet(task1Handle, 1); // Ubah task1 menjadi prioritas 1 (lebih rendah)
Serial.println("Task 1 priority changed to 1 (lower).");
// Menunggu sebentar sebelum mengubah kembali prioritas
vTaskDelay(5000 / portTICK_PERIOD_MS); // Delay 5 detik
// Mengganti kembali prioritas task1 menjadi lebih tinggi
vTaskPrioritySet(task1Handle, 2); // Ubah task1 menjadi prioritas 2 (lebih tinggi)
Serial.println("Task 1 priority changed to 2 (higher).");
}
}
void setup() {
Serial.begin(115200); // Memulai komunikasi serial
// Membuat task dengan prioritas tinggi
xTaskCreate(task1, "Task 1", 1000, NULL, 2, &task1Handle);
// Membuat task dengan prioritas rendah
xTaskCreate(task2, "Task 2", 1000, NULL, 1, &task2Handle);
}
void loop() {
// Loop kosong
delay(10);
}