2021年4月5日

RaspberryPi Pico FreeRTOS Timer用Java/Qt Timer Style實作

前言:

我將FreeRTOS的Timer封裝,使用方式和Java或Qt的用法相似,好方便使用。

用法:

1. 參考Thread用法實作Class
Runner *runnerA = new Runner(1);

2. 實作Timer物件
每個Timer和Object實作一個Timer物件
CTimer *timer1 = new CTimer("runnerA", runnerA);

3. 設定Timer
timer1->SetTimer(5, true);

參數1: 定時時間(單位是FreeRTOS的tick)
參數2: 是否循環觸發

4. 啟動Timer
timer1->Start();

程式碼:

https://gitlab.com/ycfunet/freertos_timer_template

 






RaspberryPi Pico FreeRTOS Task用Java/Qt Thread Style實作

前言:

我將FreeRTOS的Task用Thread方式實作,使用方式和Java或Qt的用法相似,好處是使用上比較方便習慣些。

用法:

1. 繼承使用Thread
#include "pico/stdlib.h"
#include "thread.h"

class LedWriter : public Thread
{
};

2. 實做run Method
public:
    LedWriter();
.....
    void run();
.....
3. 主程式中實做
TaskHandle_t ledwriter_thread = NULL;
LedWriter *led_writer = new LedWriter();

4. xTaskCreate啟動Task
BaseType_t ret = xTaskCreate(LedWriter::start, "led_writer", 512, led_writer, tskIDLE_PRIORITY, &ledwriter_thread);

程式碼下載:

https://gitlab.com/ycfunet/freertos_thread_template