Lab 1 Part 2

Dependencies:   mbed PinDetect

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001  //  4180 Lab 1, Part 2
00002 //  Gregory Lanier
00003 
00004 #include "mbed.h"
00005 #include "PinDetect.h"
00006 
00007 /*
00008     This program lights up a built in LED and enables dimming with two push buttons.
00009 */
00010 
00011 // Global Vars
00012 float brightness = 0.5f;   // Initial brightness 1/2 power
00013 
00014 // I/O
00015 PinDetect   dimButton(p8);      // Make LED dimmer with p8 button
00016 PinDetect   brightButton(p9);   // Make LED brighter with p9 button
00017 PwmOut  mbedLED(LED1);          // LED1 built into Mbed
00018 
00019 // Dim Callback
00020 void dim_callback(void) {
00021     brightness -= 0.1f;
00022 }
00023 
00024 // Brighten Callback
00025 void bright_callback(void) {
00026     brightness += 0.1f;
00027 }
00028 
00029 int main()
00030 {
00031     // Button Mode Set
00032     dimButton.mode(PullUp);    
00033     brightButton.mode(PullUp);
00034     wait(0.01);
00035     
00036     // Setuo button callbacks
00037     dimButton.attach_deasserted(&dim_callback);    
00038     brightButton.attach_deasserted(&bright_callback);
00039     
00040     // Start sampling button inputs using interrupts
00041     dimButton.setSampleFrequency();
00042     brightButton.setSampleFrequency();
00043     
00044     // Logic Loop
00045     while(1) {
00046         mbedLED = brightness;   // Update brightness
00047         }
00048 }