这个程序是上一个程序的扩展,就是定义了两个超时和一个中断。
首先中断超作用,然后第一个超时,第一个超时后启动第二个超时。
程序如下:
#include "mbed.h"
Timeout Response;
Timeout Response_duration;
InterruptIn button(PA15);
DigitalOut led1(PB30);
DigitalOut led2(PA20);
DigitalOut led3(PA21);
void blink_end()
{
led2=0;
}
void blink()
{
led2 = 1;
Response_duration.attach(&blink_end,1);
}
void ISR1()
{
led3 = 1;
Response.attach(&blink,2.0);
}
int main()
{
button.rise(&ISR1);
while(1){
led3 = 0;
led1 =!led1;
wait(0.2);
}
}
这个图片同前一个一样,只运运行时更人性化,更符合人的思维,当我接下按键时抬起时触发中断,然后过一定延时时间一个灯动作。
这个灯动作后另一个也在延时后动作。
以下是编译通过的截图:
|