
本帖最后由 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; } } } |
谢谢分享 |
四个按键太多,能否减去2个,用两个按键来设置。 |