Craig Evans
/
ELEC2645_FSM_Puffin
Gamepad2
Diff: main.cpp
- 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