Skip to content
TridentTD edited this page Apr 8, 2023 · 7 revisions

[Wiki] : TridentTD_EasyFreeRTOS32

วิธีใช้งานแบบกระทัดรัด

#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 ทิ้ง หลังทำงานที่ต้องการเสร็จ
      });
    }
  }
}
Clone this wiki locally