这个程序是上一个程序的扩展,就是定义了两个超时和一个中断。
首先中断超作用,然后第一个超时,第一个超时后启动第二个超时。
程序如下:
- #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);
- }
- }
这个图片同前一个一样,只运运行时更人性化,更符合人的思维,当我接下按键时抬起时触发中断,然后过一定延时时间一个灯动作。
这个灯动作后另一个也在延时后动作。
以下是编译通过的截图:
|