我们在使用Ticker对象的过程中还可以随时对Ticker设定的间隔进行更改,更改后的时间是即时生效的,如下面的代码,我们发现,用户每按一次按钮,led1的闪烁频率就会加快一倍。
下面的程序,充分利用SAM R21板子上的用户按键和LED。每当按下一次LED闪的速度就快一倍。
程序如下:
- #include "mbed.h"
- DigitalOut led1(LED1);
- InterruptIn btn(PA28);
- Ticker timer_led1;
- float interval;
- void led1flip()
- {
- led1=!led1;
- }
- void changefred()
- {
- interval=interval /2.0;
- timer_led1.attach(&led1flip,interval);
- }
- int main() {
- interval=2;
- btn.fall(&changefred);
- timer_led1.attach(&led1flip,interval);
- while (1);
-
- }
以下是程序下载的截图:
下载后,每按一下用户按钮,LED闪的速度就快一倍,验证程序成功。
|