[Atmel] 在mbed环境下跑一下SAMD21:一个超时游戏

[复制链接]
1994|3
 楼主| ddllxxrr 发表于 2016-3-30 06:51 | 显示全部楼层 |阅读模式
这个得用PC终端配合,就是程序每个都显示个延时我基数,用户根据这个基数,默数记时,程序则延时这个数后用定时器记时,然后按下按钮。
这时定时器记数在PC终端显示出来。
程序如下:
  1. #include "mbed.h"
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. void measure();
  5. Serial pc(USBTX,USBRX);
  6. Timeout Response;
  7. Timeout Response_duration;
  8. DigitalIn button(PA15);
  9. DigitalOut led1(PB30);
  10. DigitalOut led2(PA20);
  11. DigitalOut led3(PA21);
  12. Timer t;           //用于测量响应时间
  13. Timeout action;   //超时用于初始化响应速度测试
  14. int main()
  15. {
  16.     pc.printf("Reaction Time Test\n\r");
  17.     pc.printf("---------------------\n\r");
  18.    
  19.     while(1){
  20.              int r_delay; //LED闪烁之前的随机延迟
  21.               pc.printf("New Test\n\r");
  22.               led2 = 1;
  23.               wait(0.2);
  24.               led2 = 0;
  25.               r_delay = rand() % 10 + 1; //生成一个1-10的随机数
  26.               pc.printf("random number is %i\n\r",r_delay);//用于测试随机数正常使用时删除
  27.               action.attach(&measure,r_delay);//设置超时调用函数measure()
  28.               wait(10);  //在该时间内开始测试完成测试后返回
  29.               
  30.             }
  31.     }
  32.    
  33.     void measure()
  34.     {
  35.        if(button == 0)
  36.        {
  37.            pc.printf("Don't hold button down!");
  38.            }
  39.            else{
  40.                t.start();
  41.                led2 = 1;
  42.                wait(0.05);
  43.                led2 = 0;
  44.                while(button ==1)
  45.                {}
  46.                t.stop();
  47.                pc.printf("Your reaction time was %f seconds\n\r",t.read());
  48.                t.reset();
  49.                }   
  50.     }
  51.    
  52.    


运行截图如下:

本帖子中包含更多资源

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

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

本版积分规则

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

2404

主题

7001

帖子

68

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