David Beargie
/
LHS_program_1
Code for LHS 12_12_2013
main.cpp@2:da289f7a67c9, 2014-02-01 (annotated)
- Committer:
- dbearg
- Date:
- Sat Feb 01 16:53:35 2014 +0000
- Revision:
- 2:da289f7a67c9
- Parent:
- 1:da313e5e8914
- Child:
- 3:59a9bd160e29
added motor on duration and motor off function to each interrupt
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
dbearg | 1:da313e5e8914 | 1 | //================================== |
dbearg | 1:da313e5e8914 | 2 | // |
dbearg | 1:da313e5e8914 | 3 | // PLTW PROGRAM |
dbearg | 1:da313e5e8914 | 4 | // ---------------------------- |
dbearg | 1:da313e5e8914 | 5 | // Controls a PWM output using |
dbearg | 1:da313e5e8914 | 6 | // digital inputs |
dbearg | 1:da313e5e8914 | 7 | // |
dbearg | 1:da313e5e8914 | 8 | //================================== |
dbearg | 1:da313e5e8914 | 9 | |
dbearg | 1:da313e5e8914 | 10 | |
dbearg | 0:17b1dcf89648 | 11 | //================================== |
dbearg | 0:17b1dcf89648 | 12 | // Add any libraries that you use: |
dbearg | 0:17b1dcf89648 | 13 | //================================== |
dbearg | 1:da313e5e8914 | 14 | |
dbearg | 0:17b1dcf89648 | 15 | #include "mbed.h" |
dbearg | 0:17b1dcf89648 | 16 | #include "Servo.h" |
dbearg | 0:17b1dcf89648 | 17 | |
dbearg | 0:17b1dcf89648 | 18 | |
dbearg | 0:17b1dcf89648 | 19 | //================================== |
dbearg | 0:17b1dcf89648 | 20 | // Add variables: |
dbearg | 0:17b1dcf89648 | 21 | //================================== |
dbearg | 0:17b1dcf89648 | 22 | |
dbearg | 1:da313e5e8914 | 23 | //add a motor to PWM output on pin 25 |
dbearg | 1:da313e5e8914 | 24 | Servo motor1(p25); |
dbearg | 0:17b1dcf89648 | 25 | |
dbearg | 1:da313e5e8914 | 26 | //add a variable for motor speed |
dbearg | 1:da313e5e8914 | 27 | float speed = 0.5; |
dbearg | 0:17b1dcf89648 | 28 | |
dbearg | 0:17b1dcf89648 | 29 | //add variables for the onboard LEDS, which display for each button |
dbearg | 0:17b1dcf89648 | 30 | DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4); |
dbearg | 0:17b1dcf89648 | 31 | |
dbearg | 0:17b1dcf89648 | 32 | //add variables for button inputs on pins 15, 16, 17, and 18. |
dbearg | 0:17b1dcf89648 | 33 | InterruptIn a(p18), b(p17), c(p16), d(p15); |
dbearg | 0:17b1dcf89648 | 34 | |
dbearg | 0:17b1dcf89648 | 35 | //================================== |
dbearg | 0:17b1dcf89648 | 36 | // Functions for each button press |
dbearg | 0:17b1dcf89648 | 37 | //================================== |
dbearg | 0:17b1dcf89648 | 38 | |
dbearg | 0:17b1dcf89648 | 39 | |
dbearg | 0:17b1dcf89648 | 40 | // Functions for button 1 |
dbearg | 0:17b1dcf89648 | 41 | void a_hit_interrupt (void) { |
dbearg | 0:17b1dcf89648 | 42 | |
dbearg | 2:da289f7a67c9 | 43 | //move VEX motor (1 is full CCW, 0 is full CW) |
dbearg | 1:da313e5e8914 | 44 | speed = 1.0; |
dbearg | 1:da313e5e8914 | 45 | motor1 = speed; |
dbearg | 2:da289f7a67c9 | 46 | //set the motor on duration in seconds: |
dbearg | 2:da289f7a67c9 | 47 | wait(1); |
dbearg | 2:da289f7a67c9 | 48 | //stop motor |
dbearg | 2:da289f7a67c9 | 49 | speed = 0.5; |
dbearg | 2:da289f7a67c9 | 50 | motor1 = speed; |
dbearg | 0:17b1dcf89648 | 51 | |
dbearg | 0:17b1dcf89648 | 52 | //Set LED 1 |
dbearg | 0:17b1dcf89648 | 53 | led1 = 1, led2 = 0, led3 = 0, led4 = 0; |
dbearg | 0:17b1dcf89648 | 54 | } |
dbearg | 0:17b1dcf89648 | 55 | |
dbearg | 0:17b1dcf89648 | 56 | |
dbearg | 0:17b1dcf89648 | 57 | |
dbearg | 0:17b1dcf89648 | 58 | // Functions for button 2 |
dbearg | 0:17b1dcf89648 | 59 | void b_hit_interrupt (void) { |
dbearg | 0:17b1dcf89648 | 60 | |
dbearg | 2:da289f7a67c9 | 61 | //move VEX motor (1 is full CCW, 0 is full CW) |
dbearg | 1:da313e5e8914 | 62 | speed = 0.0; |
dbearg | 1:da313e5e8914 | 63 | motor1 = speed; |
dbearg | 2:da289f7a67c9 | 64 | //set the motor on duration in seconds: |
dbearg | 2:da289f7a67c9 | 65 | wait(1); |
dbearg | 2:da289f7a67c9 | 66 | //stop motor |
dbearg | 2:da289f7a67c9 | 67 | speed = 0.5; |
dbearg | 2:da289f7a67c9 | 68 | motor1 = speed; |
dbearg | 2:da289f7a67c9 | 69 | |
dbearg | 0:17b1dcf89648 | 70 | //Set LED 2 |
dbearg | 0:17b1dcf89648 | 71 | led1 = 0, led2 = 1, led3 = 0, led4 = 0; |
dbearg | 0:17b1dcf89648 | 72 | } |
dbearg | 0:17b1dcf89648 | 73 | |
dbearg | 0:17b1dcf89648 | 74 | |
dbearg | 0:17b1dcf89648 | 75 | |
dbearg | 0:17b1dcf89648 | 76 | // Functions for button 3 |
dbearg | 0:17b1dcf89648 | 77 | void c_hit_interrupt (void) { |
dbearg | 0:17b1dcf89648 | 78 | |
dbearg | 0:17b1dcf89648 | 79 | //Set LED 3 |
dbearg | 0:17b1dcf89648 | 80 | led1 = 0, led2 = 0, led3 = 1, led4 = 0; |
dbearg | 0:17b1dcf89648 | 81 | } |
dbearg | 0:17b1dcf89648 | 82 | |
dbearg | 0:17b1dcf89648 | 83 | |
dbearg | 0:17b1dcf89648 | 84 | |
dbearg | 0:17b1dcf89648 | 85 | // Functions for button 4 |
dbearg | 0:17b1dcf89648 | 86 | void d_hit_interrupt (void) { |
dbearg | 0:17b1dcf89648 | 87 | |
dbearg | 0:17b1dcf89648 | 88 | //Set LED 4 |
dbearg | 0:17b1dcf89648 | 89 | led1 = 0, led2 = 0, led3 = 0, led4 = 1; |
dbearg | 0:17b1dcf89648 | 90 | } |
dbearg | 0:17b1dcf89648 | 91 | |
dbearg | 0:17b1dcf89648 | 92 | |
dbearg | 0:17b1dcf89648 | 93 | |
dbearg | 0:17b1dcf89648 | 94 | //========================================================== |
dbearg | 0:17b1dcf89648 | 95 | // MAIN FUNCTION |
dbearg | 0:17b1dcf89648 | 96 | // waits for button press, then uses the button code above |
dbearg | 0:17b1dcf89648 | 97 | //========================================================== |
dbearg | 0:17b1dcf89648 | 98 | |
dbearg | 0:17b1dcf89648 | 99 | int main() { |
dbearg | 0:17b1dcf89648 | 100 | |
dbearg | 0:17b1dcf89648 | 101 | // Use internal pullup resistors to limit the signal current |
dbearg | 0:17b1dcf89648 | 102 | a.mode(PullUp); |
dbearg | 0:17b1dcf89648 | 103 | b.mode(PullUp); |
dbearg | 0:17b1dcf89648 | 104 | c.mode(PullUp); |
dbearg | 0:17b1dcf89648 | 105 | d.mode(PullUp); |
dbearg | 0:17b1dcf89648 | 106 | |
dbearg | 0:17b1dcf89648 | 107 | // Delay for initial pullup switching to take effect |
dbearg | 0:17b1dcf89648 | 108 | wait(.01); |
dbearg | 0:17b1dcf89648 | 109 | |
dbearg | 0:17b1dcf89648 | 110 | // tells the code what function should be called for each switch press |
dbearg | 0:17b1dcf89648 | 111 | a.fall(&a_hit_interrupt); |
dbearg | 0:17b1dcf89648 | 112 | b.fall(&b_hit_interrupt); |
dbearg | 0:17b1dcf89648 | 113 | c.fall(&c_hit_interrupt); |
dbearg | 0:17b1dcf89648 | 114 | d.fall(&d_hit_interrupt); |
dbearg | 0:17b1dcf89648 | 115 | |
dbearg | 0:17b1dcf89648 | 116 | |
dbearg | 2:da289f7a67c9 | 117 | while(1) { |
dbearg | 0:17b1dcf89648 | 118 | //reset LEDs |
dbearg | 0:17b1dcf89648 | 119 | led1 = 0, led2 = 0, led3 = 0, led4 = 0; |
dbearg | 0:17b1dcf89648 | 120 | |
dbearg | 0:17b1dcf89648 | 121 | } |
dbearg | 0:17b1dcf89648 | 122 | } |