ECE 4180 / Mbed 2 deprecated 4180_L1_P2

Dependencies:   mbed PinDetect

Committer:
glanier9
Date:
Mon Feb 01 20:01:58 2021 +0000
Revision:
0:4853dd97de42
Final code

Who changed what in which revision?

UserRevisionLine numberNew 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 }