Timer - 使用一次性的GTimer
材料准备
- Ameba x 1
范例说明
这个范例里我们使用5个一次性的GTimer,并且带入使用者的资料。
打开范例 “File” -> “Examples” -> “AmebaGTimer” -> “timer_oneshot” 编译并上传至Ameba之后, 按下Reset按钮。
打开范例 “File” -> “Examples” -> “AmebaGTimer” -> “timer_oneshot” 编译并上传至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 1GTimer.begin(1, 2 * 1000 * 1000, myhandler, false, 1);
其余的timer都使用类似的配置。
在myhandler里面,会将使用者资料印出来。因为我们设定了5个timer依序会在1秒、2秒、3秒、4秒、5秒发生,所以log里面会到前5秒每秒都有timer印出log。印完之后就不会有动作。
Realtek IoT/Wi-Fi MCU Solutions . All Rights Reserved. 使用条款