~

Dependencies:   MCP23S17 mbed

Files at this revision

API Documentation at this revision

Comitter:
kswanson31
Date:
Fri Sep 09 22:14:06 2016 +0000
Child:
1:cd5247f3a499
Commit message:
Initial commit with parts 1, 2, and 3. No extra credit

Changed in this revision

MCP23S17.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MCP23S17.lib	Fri Sep 09 22:14:06 2016 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/users/romilly/code/MCP23S17/#068b1e8909bb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Sep 09 22:14:06 2016 +0000
@@ -0,0 +1,55 @@
+// code for part 1, 2, & 3
+#include "mbed.h"
+#include "MCP23S17.h"
+
+// 1
+DigitalIn dip_switch8(p21);
+DigitalOut green_led(p22);
+// 2
+DigitalIn dip_switch1(p26);
+DigitalIn dip_switch2(p25);
+PwmOut blue_led(p23);
+// 3
+SPI spi(p5, p6, p7); // SPI bus
+char Opcode = 0x40; // 8-bit address for writes
+MCP23S17 chip = MCP23S17(spi, p20, Opcode); // create an MCP23S17
+
+int switch_state;
+
+int main()
+{
+    // 2
+    dip_switch1.mode(PullUp); // configure internal pull up resistor
+    dip_switch2.mode(PullUp);
+    
+    blue_led.period(0.016f); // ~ 60 Hz
+    blue_led.write(0.50f); // 50 % duty cycle
+    
+    // 3
+    chip.direction(PORT_A, 0x00); // set all Port A bits to output
+    chip.direction(PORT_B, 0xFF); // set all B to input
+    switch_state = 0;
+    
+    while(1) {
+        // 1
+        green_led = dip_switch8;
+        
+        // 2
+        if (!dip_switch1) {
+            blue_led.write(0.25f); // half start brightness, half duty cycle
+        }
+        else if (!dip_switch2) {
+            blue_led.write(0.125f); // 1/4 starting brightness
+        } else {
+            blue_led.write(0.50f); // initial
+        }
+        
+        // 3
+        // get the state of the switch (0 or 1) and flip it, 0 when off
+        switch_state = !chip.read(PORT_B) & 0x01;
+        // write the saved value to MCP23S17 Port A
+        chip.write(PORT_A, switch_state);
+        wait(.2);
+        // yellow led should change opposite the green led
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Sep 09 22:14:06 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/2e9cc70d1897
\ No newline at end of file