Gamepad2

Dependencies:   mbed

Revision:
4:b6e9d473ce0e
Parent:
3:818317dbe8a5
--- a/main.cpp	Wed Dec 20 13:06:03 2017 +0000
+++ b/main.cpp	Fri Jan 24 15:16:38 2020 +0000
@@ -1,5 +1,4 @@
 /*
-
 2645_FSM_Puffin
 
 Sample code from ELEC2645
@@ -7,26 +6,22 @@
 Demonstrates how to implement a puffin crossing using a FSM
 
 (c) Craig A. Evans, University of Leeds, Jan 2016
-
+Updated Janaury 2020 for Gamepad2
 */
 
 #include "mbed.h"
-
 // K64F on-board LEDs
-DigitalOut r_led(LED_RED);
-DigitalOut g_led(LED_GREEN);
-DigitalOut b_led(LED_BLUE);
+BusOut k64f_leds(LED_RED, LED_GREEN, LED_BLUE);
 
 // LEDs to display traffic light output
-// May need to change pins depending on which order you soldered the LEDs
 // LSB                       MSB
 // car - green,amber, red  pedestrian - green, red
-BusOut output(PTC2,PTA2,PTA1,PTD3,PTC3); // LED order suggested in notes
+BusOut output(PTC3,PTC2,PTA2,PTC11,PTA1); 
 
 // BusIn to read inputs simutaneously
 // camera (button A) , pedestrian button (button B)
 // LSB, MSB
-BusIn input(PTB9,PTD0);
+BusIn input(PTC7,PTC9);
 
 // struct for state
 struct State {
@@ -36,21 +31,18 @@
 };
 
 State fsm[4] = {
-    {0x13,5.0,{...,...,...,...}},  // 0 - cars stop, pedestrian walk               5 seconds
-    {...,2.0,{2,2,2,2}},  // 1 - cars get ready to go, pedestrian stop    2 seconds
-    {...,10.0,{...,...,...,...}}, // 2 - cars go, pedestrian stop                10 seconds
-    {...,2.0,{0,0,0,0}}   // 3 - cars get ready to stop, pedestrian stop  2 seconds
+    {0x..,5.0,{..,..,..,..}},  // 0 - cars stop, pedestrian walk               5 seconds
+    {0x..,2.0,{..,..,..,..}},  // 1 - cars get ready to go, pedestrian stop    2 seconds
+    {0x..,10.0,{..,..,..,..}}, // 2 - cars go, pedestrian stop                10 seconds
+    {0x..,2.0,{..,..,..,..}}   // 3 - cars get ready to stop, pedestrian stop  2 seconds
 };
 
 int main()
 {
-    // on-board LEDs are active-low, so set pin high to turn them off.
-    r_led = 1;
-    g_led = 1;
-    b_led = 1;
+    k64f_leds = 0b111;  // turn off K64F LEDs
     
-    // turn on internal pull-downs for buttons A and B
-    input.mode(PullDown);
+    // turn on internal pull-up for buttons A and B
+    input.mode(PullUp);
     
     int state = 2;  // start with cars green