Ameba Arduino: [RTL8722CSM] [RTL8722DM] [RTL8722DM MINI] Timer - 使用一次性的GTimer

材料准备

  • AmebaD [RTL8722DM / RTL8722CSM / RTL8722DM MINI] x 1

范例说明

这个范例里我们使用5个一次性的GTimer,并且带入使用者的资料。

打开范例 “File” -> “Examples” -> “AmebaGTimer” -> “TimerOneshot” 编译并上传至Ameba之后, 按下Reset按钮。
接着会看到5个timer接连着印出log

程式码说明

在begin()里面, 第2个参数是Timer ID, 值为0~4。第2个参数是Timer的时间, 单位为us (microsecond), 这边设定为1秒。第3个参数是时间到了要呼叫的function。第四个参数是设定是否为周期性,设定true为周期性的Timer,设定 false则为一次性的Timer。第5个参数是使用者的资料,这边填0代表是timer 0。

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

接着我们设定第2个Timer, 与前一个差别在于timer id填1, timer的时间是2秒, 带入的使用者资料为1代表是Timer 1

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

其余的timer都使用类似的配置。
在myhandler里面,会将使用者资料印出来。因为我们设定了5个timer依序会在1秒、2秒、3秒、4秒、5秒发生,所以log里面会到前5秒每秒都有timer印出log。印完之后就不会有动作。

Copyrights ©瑞晟微电子(苏州)有限公司 2021. All rights reserved.
请先确认已安装QQ通讯软体