4180 lab 1
Dependencies: mbed MCP23S17 PinDetect USBDevice
main.cpp@3:d84f4a501915, 2020-01-15 (annotated)
- Committer:
- emilywilson
- Date:
- Wed Jan 15 18:38:18 2020 +0000
- Revision:
- 3:d84f4a501915
- Parent:
- 2:7570a8526148
- Child:
- 4:6a7029bf4e1c
pb interrupts
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 | 1:f121b88d9c85 | 6 | DigitalOut 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 | 0:c1654e25cc43 | 11 | //BusIn ledSelect(p8, p9, p10); |
emilywilson | 0:c1654e25cc43 | 12 | // |
emilywilson | 0:c1654e25cc43 | 13 | //PinName redPin = p11; |
emilywilson | 0:c1654e25cc43 | 14 | //PinName greenPin = p12; |
emilywilson | 0:c1654e25cc43 | 15 | //PinName bluePin = p13; |
emilywilson | 0:c1654e25cc43 | 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 | 0:c1654e25cc43 | 35 | while(1) { |
emilywilson | 0:c1654e25cc43 | 36 | // Part 1 |
emilywilson | 1:f121b88d9c85 | 37 | // myled = !pb; |
emilywilson | 0:c1654e25cc43 | 38 | |
emilywilson | 0:c1654e25cc43 | 39 | // Part 2 |
emilywilson | 0:c1654e25cc43 | 40 | pb1.mode(PullUp); |
emilywilson | 0:c1654e25cc43 | 41 | pb2.mode(PullUp); |
emilywilson | 1:f121b88d9c85 | 42 | wait(0.1); |
emilywilson | 0:c1654e25cc43 | 43 | |
emilywilson | 1:f121b88d9c85 | 44 | builtinLED = p; |
emilywilson | 0:c1654e25cc43 | 45 | |
emilywilson | 0:c1654e25cc43 | 46 | // Part 3 |
emilywilson | 0:c1654e25cc43 | 47 | // RGBLed myRBGLed = RGBLed(redPin, greenPin, bluePin); |
emilywilson | 0:c1654e25cc43 | 48 | // float redVal = 0.0f; |
emilywilson | 0:c1654e25cc43 | 49 | // float greenVal = 0.0f; |
emilywilson | 0:c1654e25cc43 | 50 | // float blueVal = 0.0f; |
emilywilson | 0:c1654e25cc43 | 51 | // |
emilywilson | 0:c1654e25cc43 | 52 | // pb1.mode(PullUp) |
emilywilson | 0:c1654e25cc43 | 53 | // pb2.mode(PullUp) |
emilywilson | 0:c1654e25cc43 | 54 | // wait(0.1) |
emilywilson | 0:c1654e25cc43 | 55 | // |
emilywilson | 0:c1654e25cc43 | 56 | // // Possibly try attach_asserted |
emilywilson | 0:c1654e25cc43 | 57 | // pb1.attach_deasserted(&pb1_hit_callback); |
emilywilson | 0:c1654e25cc43 | 58 | // pb2.attach_deasserted(&pb2_hit_callback); |
emilywilson | 0:c1654e25cc43 | 59 | // pb1.setSampleFrequency(); |
emilywilson | 0:c1654e25cc43 | 60 | // pb2.setSampleFrequency(); |
emilywilson | 0:c1654e25cc43 | 61 | // |
emilywilson | 0:c1654e25cc43 | 62 | // if (ledSelect & 0x1) { |
emilywilson | 0:c1654e25cc43 | 63 | // redVal = 1.0 * p; |
emilywilson | 0:c1654e25cc43 | 64 | // } |
emilywilson | 0:c1654e25cc43 | 65 | // if (ledSelect & 0x2) { |
emilywilson | 0:c1654e25cc43 | 66 | // greenVal = 1.0 * p; |
emilywilson | 0:c1654e25cc43 | 67 | // } |
emilywilson | 0:c1654e25cc43 | 68 | // if (ledselect & 0x4) { |
emilywilson | 0:c1654e25cc43 | 69 | // blueVal = 1.0 * p; |
emilywilson | 0:c1654e25cc43 | 70 | // } |
emilywilson | 0:c1654e25cc43 | 71 | // } |
emilywilson | 0:c1654e25cc43 | 72 | |
emilywilson | 0:c1654e25cc43 | 73 | // Part 4 |
emilywilson | 1:f121b88d9c85 | 74 | } |
emilywilson | 0:c1654e25cc43 | 75 | } |