Sikil
/
Sikil
Sikil
main.cpp@0:ca4ecd424807, 2021-01-15 (annotated)
- Committer:
- maetugr
- Date:
- Fri Jan 15 09:51:57 2021 +0000
- Revision:
- 0:ca4ecd424807
LED brightness works asynchronously
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
maetugr | 0:ca4ecd424807 | 1 | /* Sikil |
maetugr | 0:ca4ecd424807 | 2 | */ |
maetugr | 0:ca4ecd424807 | 3 | |
maetugr | 0:ca4ecd424807 | 4 | #include "mbed.h" |
maetugr | 0:ca4ecd424807 | 5 | #include "platform/mbed_thread.h" |
maetugr | 0:ca4ecd424807 | 6 | |
maetugr | 0:ca4ecd424807 | 7 | int main() |
maetugr | 0:ca4ecd424807 | 8 | { |
maetugr | 0:ca4ecd424807 | 9 | DigitalOut led(LED1); |
maetugr | 0:ca4ecd424807 | 10 | Serial computer(USBTX, USBRX); |
maetugr | 0:ca4ecd424807 | 11 | |
maetugr | 0:ca4ecd424807 | 12 | computer.baud(9600); |
maetugr | 0:ca4ecd424807 | 13 | computer.printf("Press 'u' to turn LED brightness up, 'd' to turn it down\n"); |
maetugr | 0:ca4ecd424807 | 14 | |
maetugr | 0:ca4ecd424807 | 15 | float brightness{1.f}; |
maetugr | 0:ca4ecd424807 | 16 | static constexpr int duty_cycle_ms{10}; |
maetugr | 0:ca4ecd424807 | 17 | |
maetugr | 0:ca4ecd424807 | 18 | while (true) { |
maetugr | 0:ca4ecd424807 | 19 | if (computer.readable()) { |
maetugr | 0:ca4ecd424807 | 20 | char letter = computer.getc(); |
maetugr | 0:ca4ecd424807 | 21 | |
maetugr | 0:ca4ecd424807 | 22 | if((letter == 'u') && (brightness < 1.f)) { |
maetugr | 0:ca4ecd424807 | 23 | brightness += 0.1f; |
maetugr | 0:ca4ecd424807 | 24 | led = brightness; |
maetugr | 0:ca4ecd424807 | 25 | } |
maetugr | 0:ca4ecd424807 | 26 | |
maetugr | 0:ca4ecd424807 | 27 | if((letter == 'd') && (brightness > 0.f)) { |
maetugr | 0:ca4ecd424807 | 28 | brightness -= 0.1f; |
maetugr | 0:ca4ecd424807 | 29 | led = brightness; |
maetugr | 0:ca4ecd424807 | 30 | } |
maetugr | 0:ca4ecd424807 | 31 | } |
maetugr | 0:ca4ecd424807 | 32 | |
maetugr | 0:ca4ecd424807 | 33 | led = 1; |
maetugr | 0:ca4ecd424807 | 34 | thread_sleep_for(brightness * duty_cycle_ms); |
maetugr | 0:ca4ecd424807 | 35 | led = 0; |
maetugr | 0:ca4ecd424807 | 36 | thread_sleep_for((1.f - brightness) * duty_cycle_ms); |
maetugr | 0:ca4ecd424807 | 37 | } |
maetugr | 0:ca4ecd424807 | 38 | } |