4180 lab 1
Dependencies: mbed MCP23S17 PinDetect USBDevice
main.cpp@10:0886afdfb170, 2020-01-21 (annotated)
- Committer:
- emilywilson
- Date:
- Tue Jan 21 20:54:41 2020 +0000
- Revision:
- 10:0886afdfb170
- Parent:
- 7:b7720a8623b5
- Child:
- 11:2cfdab516b21
watchdog extra credit changes
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
emilywilson | 0:c1654e25cc43 | 1 | #include "mbed.h" |
emilywilson | 0:c1654e25cc43 | 2 | #include "RGBLed.h" |
emilywilson | 0:c1654e25cc43 | 3 | #include "PinDetect.h" |
emilywilson | 7:b7720a8623b5 | 4 | //#include "part4.h" |
emilywilson | 7:b7720a8623b5 | 5 | //#include "part6.h" |
emilywilson | 10:0886afdfb170 | 6 | //#include "part7.h" |
emilywilson | 7:b7720a8623b5 | 7 | //#include "part8.h" |
emilywilson | 7:b7720a8623b5 | 8 | //#include "part9.h" |
emilywilson | 10:0886afdfb170 | 9 | #include "watchdog_ec.h" |
emilywilson | 0:c1654e25cc43 | 10 | |
emilywilson | 7:b7720a8623b5 | 11 | //DigitalOut myled(p26); |
emilywilson | 7:b7720a8623b5 | 12 | //PwmOut builtinLED(LED1); |
emilywilson | 7:b7720a8623b5 | 13 | //DigitalIn pb(p22); |
emilywilson | 1:f121b88d9c85 | 14 | //DigitalIn pb2(p21); |
emilywilson | 0:c1654e25cc43 | 15 | |
emilywilson | 5:d1ad3a964858 | 16 | // p20 is most significant bit |
emilywilson | 7:b7720a8623b5 | 17 | //PinDetect redSelect(p18); |
emilywilson | 7:b7720a8623b5 | 18 | //PinDetect blueSelect(p19); |
emilywilson | 7:b7720a8623b5 | 19 | //PinDetect greenSelect(p20); |
emilywilson | 7:b7720a8623b5 | 20 | // |
emilywilson | 7:b7720a8623b5 | 21 | //PinName redPin = p24; |
emilywilson | 7:b7720a8623b5 | 22 | //PinName greenPin = p25; |
emilywilson | 7:b7720a8623b5 | 23 | //PinName bluePin = p23; |
emilywilson | 7:b7720a8623b5 | 24 | // |
emilywilson | 7:b7720a8623b5 | 25 | //PinDetect pb1(p21); |
emilywilson | 7:b7720a8623b5 | 26 | //PinDetect pb2(p22); |
emilywilson | 0:c1654e25cc43 | 27 | |
emilywilson | 2:7570a8526148 | 28 | float volatile p = 1.0f; |
emilywilson | 0:c1654e25cc43 | 29 | |
emilywilson | 0:c1654e25cc43 | 30 | void pb1_hit_callback() { |
emilywilson | 0:c1654e25cc43 | 31 | if (p > 0) { |
emilywilson | 7:b7720a8623b5 | 32 | p -= 0.1f; |
emilywilson | 0:c1654e25cc43 | 33 | } |
emilywilson | 0:c1654e25cc43 | 34 | } |
emilywilson | 0:c1654e25cc43 | 35 | |
emilywilson | 0:c1654e25cc43 | 36 | void pb2_hit_callback() { |
emilywilson | 5:d1ad3a964858 | 37 | if (p < 1) { |
emilywilson | 7:b7720a8623b5 | 38 | p += 0.1f; |
emilywilson | 0:c1654e25cc43 | 39 | } |
emilywilson | 0:c1654e25cc43 | 40 | } |
emilywilson | 0:c1654e25cc43 | 41 | |
emilywilson | 7:b7720a8623b5 | 42 | //RGBLed myRGBLed = RGBLed(redPin, greenPin, bluePin); |
emilywilson | 6:e346d2a3010f | 43 | |
emilywilson | 0:c1654e25cc43 | 44 | int main() { |
emilywilson | 4:6a7029bf4e1c | 45 | |
emilywilson | 7:b7720a8623b5 | 46 | // pb1.mode(PullUp); |
emilywilson | 7:b7720a8623b5 | 47 | // pb2.mode(PullUp); |
emilywilson | 7:b7720a8623b5 | 48 | // redSelect.mode(PullUp); |
emilywilson | 7:b7720a8623b5 | 49 | // greenSelect.mode(PullUp); |
emilywilson | 7:b7720a8623b5 | 50 | // blueSelect.mode(PullUp); |
emilywilson | 7:b7720a8623b5 | 51 | // wait(0.1); |
emilywilson | 7:b7720a8623b5 | 52 | // |
emilywilson | 7:b7720a8623b5 | 53 | // pb1.attach_asserted(&pb1_hit_callback); |
emilywilson | 7:b7720a8623b5 | 54 | // pb2.attach_asserted(&pb2_hit_callback); |
emilywilson | 7:b7720a8623b5 | 55 | // pb1.setSampleFrequency(); |
emilywilson | 7:b7720a8623b5 | 56 | // pb2.setSampleFrequency(); |
emilywilson | 7:b7720a8623b5 | 57 | // |
emilywilson | 7:b7720a8623b5 | 58 | // float redVal = 0.0f; |
emilywilson | 7:b7720a8623b5 | 59 | // float greenVal = 0.0f; |
emilywilson | 7:b7720a8623b5 | 60 | // float blueVal = 0.0f; |
emilywilson | 6:e346d2a3010f | 61 | |
emilywilson | 0:c1654e25cc43 | 62 | while(1) { |
emilywilson | 0:c1654e25cc43 | 63 | // Part 1 |
emilywilson | 1:f121b88d9c85 | 64 | // myled = !pb; |
emilywilson | 0:c1654e25cc43 | 65 | |
emilywilson | 0:c1654e25cc43 | 66 | // Part 2 |
emilywilson | 4:6a7029bf4e1c | 67 | // builtinLED = p; |
emilywilson | 4:6a7029bf4e1c | 68 | // wait(0.5); |
emilywilson | 0:c1654e25cc43 | 69 | |
emilywilson | 0:c1654e25cc43 | 70 | // Part 3 |
emilywilson | 7:b7720a8623b5 | 71 | // if (!redSelect) { |
emilywilson | 7:b7720a8623b5 | 72 | // redVal = 1.0f * p; |
emilywilson | 7:b7720a8623b5 | 73 | // } else { |
emilywilson | 7:b7720a8623b5 | 74 | // redVal = 0.0f; |
emilywilson | 7:b7720a8623b5 | 75 | // } |
emilywilson | 7:b7720a8623b5 | 76 | // if (!greenSelect) { |
emilywilson | 7:b7720a8623b5 | 77 | // greenVal = 1.0f * p; |
emilywilson | 7:b7720a8623b5 | 78 | // } else { |
emilywilson | 7:b7720a8623b5 | 79 | // greenVal = 0.0f; |
emilywilson | 7:b7720a8623b5 | 80 | // } |
emilywilson | 7:b7720a8623b5 | 81 | // if (!blueSelect) { |
emilywilson | 7:b7720a8623b5 | 82 | // blueVal = 1.0f * p; |
emilywilson | 7:b7720a8623b5 | 83 | // } else { |
emilywilson | 7:b7720a8623b5 | 84 | // blueVal = 0.0f; |
emilywilson | 7:b7720a8623b5 | 85 | // } |
emilywilson | 7:b7720a8623b5 | 86 | // myRGBLed.write(redVal, greenVal, blueVal); |
emilywilson | 7:b7720a8623b5 | 87 | // wait(0.5); |
emilywilson | 4:6a7029bf4e1c | 88 | |
emilywilson | 7:b7720a8623b5 | 89 | // Part 4 |
emilywilson | 7:b7720a8623b5 | 90 | // run_part4(); |
emilywilson | 7:b7720a8623b5 | 91 | |
emilywilson | 7:b7720a8623b5 | 92 | // Part 5 in separate project |
emilywilson | 7:b7720a8623b5 | 93 | |
emilywilson | 7:b7720a8623b5 | 94 | // Part 6 in separate project |
emilywilson | 5:d1ad3a964858 | 95 | |
emilywilson | 7:b7720a8623b5 | 96 | // Part 7 |
emilywilson | 7:b7720a8623b5 | 97 | run_part7(); |
emilywilson | 7:b7720a8623b5 | 98 | |
emilywilson | 7:b7720a8623b5 | 99 | // Part 8 |
emilywilson | 7:b7720a8623b5 | 100 | // run_part8(); |
emilywilson | 0:c1654e25cc43 | 101 | |
emilywilson | 7:b7720a8623b5 | 102 | // Part 9 |
emilywilson | 7:b7720a8623b5 | 103 | // run_part9(); |
emilywilson | 7:b7720a8623b5 | 104 | |
emilywilson | 7:b7720a8623b5 | 105 | // Part 10 in separate project |
emilywilson | 7:b7720a8623b5 | 106 | |
emilywilson | 7:b7720a8623b5 | 107 | // Watchdog Extra Credit |
emilywilson | 10:0886afdfb170 | 108 | run_watchdogEC(); |
emilywilson | 7:b7720a8623b5 | 109 | |
emilywilson | 1:f121b88d9c85 | 110 | } |
emilywilson | 0:c1654e25cc43 | 111 | } |