我们在使用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闪的速度就快一倍,验证程序成功。
|