// Program: Template_multitasking.ino
// งาน = Task หรือ Treading
// Multitasking หลายๆงาน
#define LED0 0
#define LED1 1
#define LED2 2
uint32_t previousTime0 = 0;
uint32_t previousTime1 = 0;
uint32_t previousTime2 = 0;
uint32_t currentTime = 0;
uint32_t time_task0 = 1000;
uint32_t time_task1 = 2000;
uint32_t time_task2 = 3000;
boolean ledState;
void setup() {
pinMode(LED0, OUTPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
//digitalWrite(LED0, HIGH);
//digitalWrite(LED1, HIGH);
//digitalWrite(LED2, HIGH);
}
void loop(){
currentTime = millis();
// Task0
if(currentTime - previousTime0 >= time_task0){
previousTime0 = currentTime;
digitalWrite(LED0, !digitalRead(LED0));
}
// Task1
if(currentTime - previousTime1 >= time_task1){
previousTime1 = currentTime;
digitalWrite(LED1, !digitalRead(LED1));
}
// Task2
if(currentTime - previousTime2 >= time_task2){
previousTime2 = currentTime;
digitalWrite(LED2, !digitalRead(LED2));
}
}
Loading
pi-pico-w
pi-pico-w