4180 lab 1
Dependencies: mbed MCP23S17 PinDetect USBDevice
main.cpp@4:6a7029bf4e1c, 2020-01-15 (annotated)
- Committer:
- emilywilson
- Date:
- Wed Jan 15 19:14:47 2020 +0000
- Revision:
- 4:6a7029bf4e1c
- Parent:
- 3:d84f4a501915
- Child:
- 5:d1ad3a964858
part 3
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 | 0:c1654e25cc43 | 4 | |
emilywilson | 0:c1654e25cc43 | 5 | DigitalOut myled(p26); |
emilywilson | 4:6a7029bf4e1c | 6 | PwmOut builtinLED(LED1); |
emilywilson | 0:c1654e25cc43 | 7 | DigitalIn pb(p22); |
emilywilson | 1:f121b88d9c85 | 8 | //DigitalIn pb2(p21); |
emilywilson | 0:c1654e25cc43 | 9 | |
emilywilson | 0:c1654e25cc43 | 10 | // p10 is most significant bit |
emilywilson | 4:6a7029bf4e1c | 11 | BusIn ledSelect(p18, p19, p20); |
emilywilson | 4:6a7029bf4e1c | 12 | |
emilywilson | 4:6a7029bf4e1c | 13 | PinName redPin = p24; |
emilywilson | 4:6a7029bf4e1c | 14 | PinName greenPin = p25; |
emilywilson | 4:6a7029bf4e1c | 15 | PinName bluePin = p23; |
emilywilson | 4:6a7029bf4e1c | 16 | |
emilywilson | 2:7570a8526148 | 17 | PinDetect pb1(p21); |
emilywilson | 2:7570a8526148 | 18 | PinDetect pb2(p22); |
emilywilson | 0:c1654e25cc43 | 19 | |
emilywilson | 2:7570a8526148 | 20 | float volatile p = 1.0f; |
emilywilson | 0:c1654e25cc43 | 21 | |
emilywilson | 0:c1654e25cc43 | 22 | void pb1_hit_callback() { |
emilywilson | 0:c1654e25cc43 | 23 | if (p > 0) { |
emilywilson | 0:c1654e25cc43 | 24 | p -= 0.1; |
emilywilson | 0:c1654e25cc43 | 25 | } |
emilywilson | 0:c1654e25cc43 | 26 | } |
emilywilson | 0:c1654e25cc43 | 27 | |
emilywilson | 0:c1654e25cc43 | 28 | void pb2_hit_callback() { |
emilywilson | 0:c1654e25cc43 | 29 | if (p < 0) { |
emilywilson | 0:c1654e25cc43 | 30 | p += 0.1; |
emilywilson | 0:c1654e25cc43 | 31 | } |
emilywilson | 0:c1654e25cc43 | 32 | } |
emilywilson | 0:c1654e25cc43 | 33 | |
emilywilson | 0:c1654e25cc43 | 34 | int main() { |
emilywilson | 4:6a7029bf4e1c | 35 | |
emilywilson | 4:6a7029bf4e1c | 36 | pb1.mode(PullUp); |
emilywilson | 4:6a7029bf4e1c | 37 | pb2.mode(PullUp); |
emilywilson | 4:6a7029bf4e1c | 38 | wait(0.1); |
emilywilson | 4:6a7029bf4e1c | 39 | |
emilywilson | 4:6a7029bf4e1c | 40 | pb1.attach_asserted(&pb1_hit_callback); |
emilywilson | 4:6a7029bf4e1c | 41 | pb2.attach_asserted(&pb2_hit_callback); |
emilywilson | 4:6a7029bf4e1c | 42 | pb1.setSampleFrequency(); |
emilywilson | 4:6a7029bf4e1c | 43 | pb2.setSampleFrequency(); |
emilywilson | 4:6a7029bf4e1c | 44 | |
emilywilson | 0:c1654e25cc43 | 45 | while(1) { |
emilywilson | 0:c1654e25cc43 | 46 | // Part 1 |
emilywilson | 1:f121b88d9c85 | 47 | // myled = !pb; |
emilywilson | 0:c1654e25cc43 | 48 | |
emilywilson | 0:c1654e25cc43 | 49 | // Part 2 |
emilywilson | 4:6a7029bf4e1c | 50 | // builtinLED = p; |
emilywilson | 4:6a7029bf4e1c | 51 | // wait(0.5); |
emilywilson | 0:c1654e25cc43 | 52 | |
emilywilson | 0:c1654e25cc43 | 53 | // Part 3 |
emilywilson | 4:6a7029bf4e1c | 54 | RGBLed myRBGLed = RGBLed(redPin, greenPin, bluePin); |
emilywilson | 4:6a7029bf4e1c | 55 | float redVal = 0.0f; |
emilywilson | 4:6a7029bf4e1c | 56 | float greenVal = 0.0f; |
emilywilson | 4:6a7029bf4e1c | 57 | float blueVal = 0.0f; |
emilywilson | 4:6a7029bf4e1c | 58 | |
emilywilson | 4:6a7029bf4e1c | 59 | if (ledSelect & 0x1) { |
emilywilson | 4:6a7029bf4e1c | 60 | redVal = 1.0 * p; |
emilywilson | 4:6a7029bf4e1c | 61 | } |
emilywilson | 4:6a7029bf4e1c | 62 | if (ledSelect & 0x2) { |
emilywilson | 4:6a7029bf4e1c | 63 | greenVal = 1.0 * p; |
emilywilson | 4:6a7029bf4e1c | 64 | } |
emilywilson | 4:6a7029bf4e1c | 65 | if (ledSelect & 0x4) { |
emilywilson | 4:6a7029bf4e1c | 66 | blueVal = 1.0 * p; |
emilywilson | 4:6a7029bf4e1c | 67 | } |
emilywilson | 0:c1654e25cc43 | 68 | |
emilywilson | 4:6a7029bf4e1c | 69 | // Part 4 |
emilywilson | 1:f121b88d9c85 | 70 | } |
emilywilson | 0:c1654e25cc43 | 71 | } |