在线时间581 小时
UID1575830
ST金币190
蝴蝶豆15
注册时间2009-2-21
该用户从未签到
论坛元老
- 最后登录
- 2021-4-23
|
本帖最后由 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;
}
}
}
|
|