Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@0:4853dd97de42, 2021-02-01 (annotated)
- Committer:
- glanier9
- Date:
- Mon Feb 01 20:01:58 2021 +0000
- Revision:
- 0:4853dd97de42
Final code
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| glanier9 | 0:4853dd97de42 | 1 | // 4180 Lab 1, Part 2 |
| glanier9 | 0:4853dd97de42 | 2 | // Gregory Lanier |
| glanier9 | 0:4853dd97de42 | 3 | |
| glanier9 | 0:4853dd97de42 | 4 | #include "mbed.h" |
| glanier9 | 0:4853dd97de42 | 5 | #include "PinDetect.h" |
| glanier9 | 0:4853dd97de42 | 6 | |
| glanier9 | 0:4853dd97de42 | 7 | /* |
| glanier9 | 0:4853dd97de42 | 8 | This program lights up a built in LED and enables dimming with two push buttons. |
| glanier9 | 0:4853dd97de42 | 9 | */ |
| glanier9 | 0:4853dd97de42 | 10 | |
| glanier9 | 0:4853dd97de42 | 11 | // Global Vars |
| glanier9 | 0:4853dd97de42 | 12 | float brightness = 0.5f; // Initial brightness 1/2 power |
| glanier9 | 0:4853dd97de42 | 13 | |
| glanier9 | 0:4853dd97de42 | 14 | // I/O |
| glanier9 | 0:4853dd97de42 | 15 | PinDetect dimButton(p8); // Make LED dimmer with p8 button |
| glanier9 | 0:4853dd97de42 | 16 | PinDetect brightButton(p9); // Make LED brighter with p9 button |
| glanier9 | 0:4853dd97de42 | 17 | PwmOut mbedLED(LED1); // LED1 built into Mbed |
| glanier9 | 0:4853dd97de42 | 18 | |
| glanier9 | 0:4853dd97de42 | 19 | // Dim Callback |
| glanier9 | 0:4853dd97de42 | 20 | void dim_callback(void) { |
| glanier9 | 0:4853dd97de42 | 21 | brightness -= 0.1f; |
| glanier9 | 0:4853dd97de42 | 22 | } |
| glanier9 | 0:4853dd97de42 | 23 | |
| glanier9 | 0:4853dd97de42 | 24 | // Brighten Callback |
| glanier9 | 0:4853dd97de42 | 25 | void bright_callback(void) { |
| glanier9 | 0:4853dd97de42 | 26 | brightness += 0.1f; |
| glanier9 | 0:4853dd97de42 | 27 | } |
| glanier9 | 0:4853dd97de42 | 28 | |
| glanier9 | 0:4853dd97de42 | 29 | int main() |
| glanier9 | 0:4853dd97de42 | 30 | { |
| glanier9 | 0:4853dd97de42 | 31 | // Button Mode Set |
| glanier9 | 0:4853dd97de42 | 32 | dimButton.mode(PullUp); |
| glanier9 | 0:4853dd97de42 | 33 | brightButton.mode(PullUp); |
| glanier9 | 0:4853dd97de42 | 34 | wait(0.01); |
| glanier9 | 0:4853dd97de42 | 35 | |
| glanier9 | 0:4853dd97de42 | 36 | // Setuo button callbacks |
| glanier9 | 0:4853dd97de42 | 37 | dimButton.attach_deasserted(&dim_callback); |
| glanier9 | 0:4853dd97de42 | 38 | brightButton.attach_deasserted(&bright_callback); |
| glanier9 | 0:4853dd97de42 | 39 | |
| glanier9 | 0:4853dd97de42 | 40 | // Start sampling button inputs using interrupts |
| glanier9 | 0:4853dd97de42 | 41 | dimButton.setSampleFrequency(); |
| glanier9 | 0:4853dd97de42 | 42 | brightButton.setSampleFrequency(); |
| glanier9 | 0:4853dd97de42 | 43 | |
| glanier9 | 0:4853dd97de42 | 44 | // Logic Loop |
| glanier9 | 0:4853dd97de42 | 45 | while(1) { |
| glanier9 | 0:4853dd97de42 | 46 | mbedLED = brightness; // Update brightness |
| glanier9 | 0:4853dd97de42 | 47 | } |
| glanier9 | 0:4853dd97de42 | 48 | } |