This is a very simple guide, reviewing the steps required to get Blinky working on an Mbed OS platform.

Dependencies:   RemoteIR

Committer:
sb8718
Date:
Fri Apr 17 07:14:47 2020 +0000
Revision:
118:88f30fadf08f
Parent:
117:cc2a98cdd8fa
Child:
119:d879334e3d87
Lab_3_1 - interrupt timer

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sb8718 109:5274dd9bebe1 1 #include "mbed.h"
sb8718 109:5274dd9bebe1 2
sb8718 118:88f30fadf08f 3 DigitalOut led2(LED2);
sb8718 118:88f30fadf08f 4 InterruptIn button(USER_BUTTON);
sb8718 117:cc2a98cdd8fa 5
sb8718 118:88f30fadf08f 6 Ticker led2_ticker;
sb8718 118:88f30fadf08f 7 Timer timer;
sb8718 111:15fa6baff793 8
sb8718 118:88f30fadf08f 9 float interval = 0.5;
sb8718 117:cc2a98cdd8fa 10
sb8718 118:88f30fadf08f 11 void timeout_cb(void) {
sb8718 118:88f30fadf08f 12 led2 = !led2;
sb8718 118:88f30fadf08f 13 timer.reset();
sb8718 118:88f30fadf08f 14 timer.start();
sb8718 116:82faef102371 15 }
sb8718 116:82faef102371 16
sb8718 118:88f30fadf08f 17 void button_onpressed_cb(void) {
sb8718 117:cc2a98cdd8fa 18
sb8718 118:88f30fadf08f 19 led2_ticker.detach();
sb8718 117:cc2a98cdd8fa 20
sb8718 118:88f30fadf08f 21 while(interval - timer.read() > 0) {
sb8718 118:88f30fadf08f 22 }
sb8718 117:cc2a98cdd8fa 23
sb8718 118:88f30fadf08f 24 led2 = !led2;
sb8718 118:88f30fadf08f 25
sb8718 118:88f30fadf08f 26 interval *= 2;
sb8718 118:88f30fadf08f 27
sb8718 118:88f30fadf08f 28 if(interval > 4.0) {
sb8718 118:88f30fadf08f 29 interval = 0.125;
sb8718 117:cc2a98cdd8fa 30 }
sb8718 118:88f30fadf08f 31 led2_ticker.attach(&timeout_cb, interval);
sb8718 117:cc2a98cdd8fa 32 }
sb8718 117:cc2a98cdd8fa 33
sb8718 118:88f30fadf08f 34 int main() {
sb8718 118:88f30fadf08f 35 button.mode(PullUp);
sb8718 118:88f30fadf08f 36 button.fall(&button_onpressed_cb);
sb8718 117:cc2a98cdd8fa 37
sb8718 118:88f30fadf08f 38 led2_ticker.attach(&timeout_cb, interval);
sb8718 118:88f30fadf08f 39 while(1) {
sb8718 118:88f30fadf08f 40
sb8718 118:88f30fadf08f 41 }
sb8718 109:5274dd9bebe1 42 }