-
Notifications
You must be signed in to change notification settings - Fork 12
Home
TridentTD edited this page Apr 8, 2023
·
7 revisions
#include <TridentTD_EasyFreeRTOS32.h>
#define button_pin 5
#define BUTTON_PRESSED LOW
void setup(){
Serial.begin(115200); Serial.println();
pinMode(button_pin, INPUT_PULLUP);
}
void loop(){
// เมื่อมีการกดปุ่ม button_pin เข้ามา
if(digitalRead(button_pin) == BUTTON_PRESSED ) {
Serial.println("[Button] pressed");
static EasyFreeRTOS32 task;
if( !task.started() ) { // หาก task ไม่ได้อยู่ระหว่างทำงานเดิมค้าง หรือมีการทำลาย task เดิมไปเรียบร้อยแล้ว
Serial.println("[EasyFreeRTOS32] task เริ่มทำงานที่ต้องการ");
task.start([task](void*){
//----------------------------------------
// จะทำอะไรให้วางตรงนี้
Serial.println("Hello World");
DELAY(5000); // ใช้ DELAY(...) ร่วมได้เลย โดยไม่สะดุดขวาง สิ่งอื่นๆ เช่น ปุ่มก็ยังกดได้อยู่ตามปกติ
Serial.println("Hello World2");
DELAY(1000);
Serial.println("Hello World3");
//----------------------------------------
task.del(); // ทำลาย task ทิ้ง หลังทำงานที่ต้องการเสร็จ
});
}
}
}