David Beargie
/
LHS_program_1
Code for LHS 12_12_2013
Diff: main.cpp
- Revision:
- 0:17b1dcf89648
- Child:
- 1:da313e5e8914
diff -r 000000000000 -r 17b1dcf89648 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri Dec 13 02:06:17 2013 +0000 @@ -0,0 +1,106 @@ +//================================== +// Add any libraries that you use: +//================================== +#include "mbed.h" +#include "Servo.h" + + +//================================== +// Add variables: +//================================== + +//add a servo to PWM output on pin 25 +Servo myservo(p25); + +//add a variable for servo position +float position = 0.5; + +//add variables for the onboard LEDS, which display for each button +DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4); + +//add variables for button inputs on pins 15, 16, 17, and 18. +InterruptIn a(p18), b(p17), c(p16), d(p15); + +//================================== +// Functions for each button press +//================================== + + +// Functions for button 1 +void a_hit_interrupt (void) { + + //move servo motor + position = 1.0; + myservo = position; + + //Set LED 1 + led1 = 1, led2 = 0, led3 = 0, led4 = 0; +} + + + +// Functions for button 2 +void b_hit_interrupt (void) { + + //move servo motor + position = 0.0; + myservo = position; + //Set LED 2 + led1 = 0, led2 = 1, led3 = 0, led4 = 0; +} + + + +// Functions for button 3 +void c_hit_interrupt (void) { + + //Set LED 3 + led1 = 0, led2 = 0, led3 = 1, led4 = 0; +} + + + +// Functions for button 4 +void d_hit_interrupt (void) { + + //Set LED 4 + led1 = 0, led2 = 0, led3 = 0, led4 = 1; +} + + + +//========================================================== +// MAIN FUNCTION +// waits for button press, then uses the button code above +//========================================================== + +int main() { + + //tune range depending on servo motor + float range = 0.0009; + + // Use internal pullup resistors to limit the signal current + a.mode(PullUp); + b.mode(PullUp); + c.mode(PullUp); + d.mode(PullUp); + + // Delay for initial pullup switching to take effect + wait(.01); + + // tells the code what function should be called for each switch press + a.fall(&a_hit_interrupt); + b.fall(&b_hit_interrupt); + c.fall(&c_hit_interrupt); + d.fall(&d_hit_interrupt); + + + while(1) { + //set the servo to use the set value + myservo.calibrate(range, 45.0); + + //reset LEDs + led1 = 0, led2 = 0, led3 = 0, led4 = 0; + + } +}