4180 LAB 1, YALL

Revision:
0:f2325cc3c756
diff -r 000000000000 -r f2325cc3c756 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Sep 04 21:18:27 2012 +0000
@@ -0,0 +1,58 @@
+#include "mbed.h"
+#include "MCP23S17.h"
+
+DigitalOut OnOffLED(LED1);
+DigitalIn OnOffBtn(p30);
+PwmOut PwmLED(LED4);
+DigitalIn PwmBtnA(p29);
+DigitalIn PwmBtnB(p28);
+
+DigitalOut DebugLEDA(LED2);
+DigitalOut DebugLEDB(LED3);
+
+SPI spi(p5, p6, p7);
+char Opcode = 0x40;
+MCP23S17 chip = MCP23S17(spi, p20, Opcode);
+
+
+
+int pwm_btn_val;
+
+int main()
+{
+    //Init
+    OnOffBtn.mode(PullUp);
+    PwmBtnA.mode(PullDown);
+    PwmBtnB.mode(PullDown);
+
+    //Loop
+    while(1) {
+
+
+        //OnOff LED code
+        OnOffLED = !OnOffBtn;
+
+        //PWM example
+        if(!PwmBtnA && !PwmBtnB)
+            PwmLED = 0.0;
+        else if(!PwmBtnA && PwmBtnB)
+            PwmLED = 0.33;
+        else if(PwmBtnA && !PwmBtnB)
+            PwmLED = 0.66;
+        else if(PwmBtnA && PwmBtnB)
+            PwmLED = 1.0;
+
+
+        //I/O Expander code
+        //  Set all 8 Port A bits to output direction
+        chip.direction(PORT_A, 0x00);
+        //  Set all 8 Port B bits to input direction
+        chip.direction(PORT_B, 0xFF);
+        //action
+        chip.write(PORT_A, (chip.read(PORT_B)&0x1)?0x80:0x00);
+        
+
+
+
+    }
+}