TridentTD / TridentTD_EasyFreeRTOS32

TridentTD_EasyFreeRTOS32 Library - TridentTD 's Multitasking for ESP32
16 stars 12 forks source link

TridentTD_EasyFreeRTOS32 Library

             ไลบรารี่สำหรับ เขียนแบบ Multitasking แบบ TridentTD บนเพรตฟอร์ม ESP32

image

วิธีการใช้งาน

  1. เรียกใช้ไลบรารี่
     #include <TridentTD_EasyFreeRTOS32.h>
  2. ประกาศตัวแปร task ย่อยๆ และ ฟังกชั่น ที่ task จะเรียกขึ้นทำงาน
     EasyFreeRTOS32   task1, task2, task3;
     void task1_func(void*), task2_func(void*), task3_func(void*);
  3. รูปแบบมาตรฐาน ฟังก์ชั่น task ย่อยๆ ที่จะถูกเรียกใช้งาน เป็นดังนี้

    
    void task1_func(void*)  {   // ฟังกชั่นที่ task1 เรียกทำงาน  - void ใช้ตัวพิมพ์เล็ก
          //----พื้นที่สำหรับประกาศตัวแปรที่ใช้ภายใน task นี้เท่านั้น----
    
          //-----------------------------------------------
    
          VOID SETUP() {  // VOID SETUP() ใน task ให้ใช้ตัวพิมพ์ใหญ่
    
          }
          VOID LOOP() {   // VOID LOOP() ใน task ให้ใช้ตัวพิมพ์ใหญ่
    
          }
    }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
**หมายเหตุ**  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ภายในฟังกชั่น task ให้ใช้ delay ด้วยคำสั่ง DELAY(..) ตัวพิมพ์ใหญ่เท่านั้น  

4. หากจะเรียก task ไหนทำงาน เช่น สำหรับ task1 ใช้คำสั่ง  
```c
     task1.start(task1_func);
  1. หากจะหยุด task ไหนทำงาน เช่น สำหรับ task1 ใช้คำสั่ง

     task1.stop();
  2. หากจะใช้งานต่อ task ไหนทำงาน เช่น สำหรับ task1 ใช้คำสั่ง

     task1.resume();
  3. สำหรับการแลกเปลี่ยนข้อมูลระหว่าง task ให้ ประกาศตัวแปรไว้ใน
    พื้นที่ ประกาศตัวแปรสำหรับแชร์ระหว่าง task (ดูที่ Template)
    โดย ให้มีมาตรฐานการตั้งชื่อ ตัวแปรสำหรับแชร์ระหว่าง task ให้ขึ้นต้นนำด้วยตัว x (เอ็กซ์พิมพ์เล็ก)

    //------- พื้นที่สำหรับประกาศตัวแปรแชร์ระหว่าง task ---------------
     float  xDHT_temp, xDHT_humid;    // มีตัว x เล็กนำหน้า เพื่อง่ายต่อการสังเกตุ
    //---------------------------------------------------------

การจูนพื้นที่เม็มโมรี่สำหรับ task นึงๆ

             ในบางครั้งเพื่อการทำงานของ task นึงๆ เพื่อให้สามารถทำงานได้อย่างมีประสิทธิภาพ
บางคราวเราอาจมีความจำเป็นต้องมีการปรับจูนพื้นที่เม็มสำหรับ task นึงๆให้เหมาะสมกับการใช้งาน

วิธีการปรับจูนพื้นที่เม็มโมมี่ สำหรับ task นึงๆสามารถปรับได้ด้วยคำสั่งดังนี้

     task1.start(task1_func, NULL, 4096);  // ขอใช้พื้นที่ขนาด 4096bytes

TridentTD
24 พฤษภาคม 2561 (ปีแห่งฤดูฝนตกชุก)
วัน ๕᧪๗ ปีจอ
Version 1.0