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 秒后,不会打印任何日志。