GTimer - 使用一次性的 GTimer

材料準備

  • AmebaD [AMB21 / AMB22 / AMB23 / BW16] x 1

範例説明

在這個例子中,我們將使用 4 個 One-Time GTimer,並將用戶數據傳遞給每個計時器。

Open the example “File” “Examples” “AmebaGTimer” “TimerOneshot”. Compile and upload to Ameba, and press reset. Then you can see the 4 timer log printed to the serial monitor in series.

程式碼説明

begin() 的第一個參數是定時器 ID (0~3)。 第二個參數是計時器的值(以微秒為單位)。在範例中,我們填寫 1000000us = 1s。 第三個參數指定時間到時要調用的函數。第四個參數是設置這個定時器是否是一個週期定時器,我們這裡使用“false”來開始一個一次性定時器。第五個參數是用戶數據,我們這裡給0表示這是定時器0。

GTimer.begin(0, 1 * 1000 * 1000, myhandler, false, 0);

接下來我們設置第二個定時器,定時器值為2秒,用戶數據為1,其他定時器的設置類似。

GTimer.begin(1, 2 * 1000 * 1000, myhandler, false, 1);

在 myhandler 函數中,我們將用戶數據打印到串行視窗。由於4個定時器分別設置為1、2、3、4秒計時,從1秒到4秒,每個定時器的用戶數據按順序打印在串行視窗上。4 秒後,不會打印任何日誌。