Seongbin Lim
/
sb_first_project
This is a very simple guide, reviewing the steps required to get Blinky working on an Mbed OS platform.
main.cpp@118:88f30fadf08f, 2020-04-17 (annotated)
- 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?
User | Revision | Line number | New 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 | } |