[Atmel] 在mbed环境下跑一下SAMD21:中断超时

[复制链接]
1363|1
 楼主| ddllxxrr 发表于 2016-3-29 09:39 | 显示全部楼层 |阅读模式
这个程序是上一个程序的扩展,就是定义了两个超时和一个中断。
首先中断超作用,然后第一个超时,第一个超时后启动第二个超时。

程序如下:
  1. #include "mbed.h"
  2. Timeout Response;
  3. Timeout Response_duration;
  4. InterruptIn button(PA15);
  5. DigitalOut led1(PB30);
  6. DigitalOut led2(PA20);
  7. DigitalOut led3(PA21);

  8. void blink_end()
  9. {
  10.     led2=0;
  11.     }
  12. void blink()
  13. {
  14.     led2 = 1;
  15.     Response_duration.attach(&blink_end,1);
  16.     }


  17. void ISR1()
  18. {
  19.     led3 = 1;
  20.     Response.attach(&blink,2.0);
  21.     }   
  22.    
  23. int main()
  24. {
  25.     button.rise(&ISR1);
  26.     while(1){
  27.         
  28.             led3 = 0;
  29.             led1 =!led1;
  30.             wait(0.2);
  31.         }
  32.     }
这个图片同前一个一样,只运运行时更人性化,更符合人的思维,当我接下按键时抬起时触发中断,然后过一定延时时间一个灯动作。
这个灯动作后另一个也在延时后动作。

以下是编译通过的截图:




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
大果仁儿 发表于 2016-3-30 13:40 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2404

主题

7001

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部