你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Mbed写的简单的定时器

[复制链接]
pythonworld 发布时间:2017-9-29 18:53
本帖最后由 pythonworld 于 2017-9-30 21:05 编辑

Mbed写的简单的定时器,分别定时10s, 300s, 600s, 900s.四个按键选择。
按键使用专用的模块,好处是不用做复杂的按键处理。
#include "mbed.h"

int status = 0;
int second =5;
const float interval1 = 0.2;
const float interval0 = 0.5;
DigitalOut  my_led(D13);
DigitalOut  my_buzzer(D8);

InterruptIn my_button1(D6);
InterruptIn my_button2(D5);
InterruptIn my_button3(D4);
InterruptIn my_button4(D3);

Timeout my_timer;

void key1_pressed()
{
   
    my_timer.detach();
    status = 1;
    second = 10;

}

void key2_pressed()
{
   
    my_timer.detach();
    status = 1;

    second = 300;
}

void key3_pressed()
{
  
    my_timer.detach();
    status = 1;

    second = 600;
}

void key4_pressed()
{
   
    my_timer.detach();
    status = 1;

    second = 900;
}

void buzzer()
{
    my_buzzer = !my_buzzer;
    my_led = !my_led;
    wait(interval1);
    my_buzzer = !my_buzzer;
    wait(interval0);
   
    my_buzzer = !my_buzzer;
    my_led = !my_led;
    wait(interval1);
    my_buzzer = !my_buzzer;
    wait(interval0);
   
    my_buzzer = !my_buzzer;
    my_led = !my_led;
    wait(interval1);
    my_buzzer = !my_buzzer;
    wait(interval0);
   
    my_buzzer = !my_buzzer;
    my_led = !my_led;
    wait(interval1);
    my_buzzer = !my_buzzer;
    wait(interval0);
   
    my_buzzer = !my_buzzer;
    my_led = !my_led;
    wait(interval1);
    my_buzzer = !my_buzzer;
    wait(interval0);
    status = 0;

}


int main()
{
    my_buzzer.write(1);
    // Set button
    my_button1.fall(&key1_pressed);
//    my_button1.rise(&key1_pressed);

    my_button2.fall(&key2_pressed);
//    my_button2.rise(&key2_pressed);

    my_button3.fall(&key3_pressed);
//    my_button3.rise(&key3_pressed);

    my_button4.fall(&key4_pressed);
//    my_button4.rise(&key4_pressed);


    while (1) {
        if(status == 1) {
            my_timer.attach(&buzzer,second);
            status = 2;
        }
        if(status == 2)
       { wait(0.5);
         my_led = !my_led;
        }
    }

}
timer photo.JPG
收藏 1 评论2 发布时间:2017-9-29 18:53

举报

2个回答
zero99 回答时间:2017-9-30 13:05:38
谢谢分享
五哥1 回答时间:2017-9-30 13:25:28
四个按键太多,能否减去2个,用两个按键来设置。

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版