4180 lab 1

Dependencies:   mbed MCP23S17 PinDetect USBDevice

Committer:
emilywilson
Date:
Wed Jan 22 13:08:48 2020 +0000
Revision:
12:cc5bda248946
Parent:
11:2cfdab516b21
mouse extra credit and power management extra credit

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 11:2cfdab516b21 9 //#include "watchdog_ec.h"
emilywilson 12:cc5bda248946 10 //#include "powermanagement_ec.h"
emilywilson 12:cc5bda248946 11 #include "mouse_ec.h"
emilywilson 0:c1654e25cc43 12
emilywilson 7:b7720a8623b5 13 //DigitalOut myled(p26);
emilywilson 7:b7720a8623b5 14 //PwmOut builtinLED(LED1);
emilywilson 7:b7720a8623b5 15 //DigitalIn pb(p22);
emilywilson 1:f121b88d9c85 16 //DigitalIn pb2(p21);
emilywilson 0:c1654e25cc43 17
emilywilson 5:d1ad3a964858 18 // p20 is most significant bit
emilywilson 7:b7720a8623b5 19 //PinDetect redSelect(p18);
emilywilson 7:b7720a8623b5 20 //PinDetect blueSelect(p19);
emilywilson 7:b7720a8623b5 21 //PinDetect greenSelect(p20);
emilywilson 7:b7720a8623b5 22 //
emilywilson 7:b7720a8623b5 23 //PinName redPin = p24;
emilywilson 7:b7720a8623b5 24 //PinName greenPin = p25;
emilywilson 7:b7720a8623b5 25 //PinName bluePin = p23;
emilywilson 7:b7720a8623b5 26 //
emilywilson 7:b7720a8623b5 27 //PinDetect pb1(p21);
emilywilson 7:b7720a8623b5 28 //PinDetect pb2(p22);
emilywilson 0:c1654e25cc43 29
emilywilson 2:7570a8526148 30 float volatile p = 1.0f;
emilywilson 0:c1654e25cc43 31
emilywilson 0:c1654e25cc43 32 void pb1_hit_callback() {
emilywilson 0:c1654e25cc43 33 if (p > 0) {
emilywilson 7:b7720a8623b5 34 p -= 0.1f;
emilywilson 0:c1654e25cc43 35 }
emilywilson 0:c1654e25cc43 36 }
emilywilson 0:c1654e25cc43 37
emilywilson 0:c1654e25cc43 38 void pb2_hit_callback() {
emilywilson 5:d1ad3a964858 39 if (p < 1) {
emilywilson 7:b7720a8623b5 40 p += 0.1f;
emilywilson 0:c1654e25cc43 41 }
emilywilson 0:c1654e25cc43 42 }
emilywilson 0:c1654e25cc43 43
emilywilson 7:b7720a8623b5 44 //RGBLed myRGBLed = RGBLed(redPin, greenPin, bluePin);
emilywilson 6:e346d2a3010f 45
emilywilson 0:c1654e25cc43 46 int main() {
emilywilson 4:6a7029bf4e1c 47
emilywilson 7:b7720a8623b5 48 // pb1.mode(PullUp);
emilywilson 7:b7720a8623b5 49 // pb2.mode(PullUp);
emilywilson 7:b7720a8623b5 50 // redSelect.mode(PullUp);
emilywilson 7:b7720a8623b5 51 // greenSelect.mode(PullUp);
emilywilson 7:b7720a8623b5 52 // blueSelect.mode(PullUp);
emilywilson 7:b7720a8623b5 53 // wait(0.1);
emilywilson 7:b7720a8623b5 54 //
emilywilson 7:b7720a8623b5 55 // pb1.attach_asserted(&pb1_hit_callback);
emilywilson 7:b7720a8623b5 56 // pb2.attach_asserted(&pb2_hit_callback);
emilywilson 7:b7720a8623b5 57 // pb1.setSampleFrequency();
emilywilson 7:b7720a8623b5 58 // pb2.setSampleFrequency();
emilywilson 7:b7720a8623b5 59 //
emilywilson 7:b7720a8623b5 60 // float redVal = 0.0f;
emilywilson 7:b7720a8623b5 61 // float greenVal = 0.0f;
emilywilson 7:b7720a8623b5 62 // float blueVal = 0.0f;
emilywilson 6:e346d2a3010f 63
emilywilson 0:c1654e25cc43 64 while(1) {
emilywilson 0:c1654e25cc43 65 // Part 1
emilywilson 1:f121b88d9c85 66 // myled = !pb;
emilywilson 0:c1654e25cc43 67
emilywilson 0:c1654e25cc43 68 // Part 2
emilywilson 4:6a7029bf4e1c 69 // builtinLED = p;
emilywilson 4:6a7029bf4e1c 70 // wait(0.5);
emilywilson 0:c1654e25cc43 71
emilywilson 0:c1654e25cc43 72 // Part 3
emilywilson 7:b7720a8623b5 73 // if (!redSelect) {
emilywilson 7:b7720a8623b5 74 // redVal = 1.0f * p;
emilywilson 7:b7720a8623b5 75 // } else {
emilywilson 7:b7720a8623b5 76 // redVal = 0.0f;
emilywilson 7:b7720a8623b5 77 // }
emilywilson 7:b7720a8623b5 78 // if (!greenSelect) {
emilywilson 7:b7720a8623b5 79 // greenVal = 1.0f * p;
emilywilson 7:b7720a8623b5 80 // } else {
emilywilson 7:b7720a8623b5 81 // greenVal = 0.0f;
emilywilson 7:b7720a8623b5 82 // }
emilywilson 7:b7720a8623b5 83 // if (!blueSelect) {
emilywilson 7:b7720a8623b5 84 // blueVal = 1.0f * p;
emilywilson 7:b7720a8623b5 85 // } else {
emilywilson 7:b7720a8623b5 86 // blueVal = 0.0f;
emilywilson 7:b7720a8623b5 87 // }
emilywilson 7:b7720a8623b5 88 // myRGBLed.write(redVal, greenVal, blueVal);
emilywilson 7:b7720a8623b5 89 // wait(0.5);
emilywilson 4:6a7029bf4e1c 90
emilywilson 7:b7720a8623b5 91 // Part 4
emilywilson 7:b7720a8623b5 92 // run_part4();
emilywilson 7:b7720a8623b5 93
emilywilson 7:b7720a8623b5 94 // Part 5 in separate project
emilywilson 7:b7720a8623b5 95
emilywilson 7:b7720a8623b5 96 // Part 6 in separate project
emilywilson 5:d1ad3a964858 97
emilywilson 7:b7720a8623b5 98 // Part 7
emilywilson 11:2cfdab516b21 99 // run_part7();
emilywilson 7:b7720a8623b5 100
emilywilson 7:b7720a8623b5 101 // Part 8
emilywilson 7:b7720a8623b5 102 // run_part8();
emilywilson 0:c1654e25cc43 103
emilywilson 7:b7720a8623b5 104 // Part 9
emilywilson 7:b7720a8623b5 105 // run_part9();
emilywilson 7:b7720a8623b5 106
emilywilson 7:b7720a8623b5 107 // Part 10 in separate project
emilywilson 7:b7720a8623b5 108
emilywilson 7:b7720a8623b5 109 // Watchdog Extra Credit
emilywilson 11:2cfdab516b21 110 // run_watchdogEC();
emilywilson 11:2cfdab516b21 111
emilywilson 12:cc5bda248946 112 // Power Management Extra Credit
emilywilson 12:cc5bda248946 113 // run_powermanagementEC();
emilywilson 12:cc5bda248946 114
emilywilson 12:cc5bda248946 115 // USB Mouse Extra Credit
emilywilson 12:cc5bda248946 116 run_mouseEC();
emilywilson 7:b7720a8623b5 117
emilywilson 1:f121b88d9c85 118 }
emilywilson 0:c1654e25cc43 119 }