4180 lab 1

Dependencies:   mbed MCP23S17 PinDetect USBDevice

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?

UserRevisionLine numberNew 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 }