Program is a work in progress

Dependencies:   4DGL-uLCD-SE PinDetect SDFileSystem mbed-rtos mbed wave_player

Fork of 4180_Lab4_v6 by Scott Williams

Committer:
ecardenas8
Date:
Sun Oct 30 04:39:01 2016 +0000
Revision:
1:e84085bbf399
Parent:
0:9f1095365b9a
Program is a work in progress

Who changed what in which revision?

UserRevisionLine numberNew contents of line
swilliams346 0:9f1095365b9a 1 class Nav_Switch
swilliams346 0:9f1095365b9a 2 {
swilliams346 0:9f1095365b9a 3 public:
swilliams346 0:9f1095365b9a 4 Nav_Switch(PinName up,PinName down,PinName left,PinName right,PinName fire);
swilliams346 0:9f1095365b9a 5 int read();
swilliams346 0:9f1095365b9a 6 //boolean functions to test each switch
swilliams346 0:9f1095365b9a 7 bool up();
swilliams346 0:9f1095365b9a 8 bool down();
swilliams346 0:9f1095365b9a 9 bool left();
swilliams346 0:9f1095365b9a 10 bool right();
swilliams346 0:9f1095365b9a 11 bool fire();
swilliams346 0:9f1095365b9a 12 //automatic read on RHS
swilliams346 0:9f1095365b9a 13 operator int ();
swilliams346 0:9f1095365b9a 14 //index to any switch array style
swilliams346 0:9f1095365b9a 15 bool operator[](int index) {
swilliams346 0:9f1095365b9a 16 return _pins[index];
swilliams346 0:9f1095365b9a 17 };
swilliams346 0:9f1095365b9a 18 private:
swilliams346 0:9f1095365b9a 19 BusIn _pins;
swilliams346 0:9f1095365b9a 20
swilliams346 0:9f1095365b9a 21 };
swilliams346 0:9f1095365b9a 22 Nav_Switch::Nav_Switch (PinName up,PinName down,PinName left,PinName right,PinName fire):
swilliams346 0:9f1095365b9a 23 _pins(up, down, left, right, fire)
swilliams346 0:9f1095365b9a 24 {
swilliams346 0:9f1095365b9a 25 _pins.mode(PullUp); //needed if pullups not on board or a bare nav switch is used - delete otherwise
swilliams346 0:9f1095365b9a 26 wait(0.001); //delays just a bit for pullups to pull inputs high
swilliams346 0:9f1095365b9a 27 }
swilliams346 0:9f1095365b9a 28 inline bool Nav_Switch::up()
swilliams346 0:9f1095365b9a 29 {
swilliams346 0:9f1095365b9a 30 return !(_pins[0]);
swilliams346 0:9f1095365b9a 31 }
swilliams346 0:9f1095365b9a 32 inline bool Nav_Switch::down()
swilliams346 0:9f1095365b9a 33 {
swilliams346 0:9f1095365b9a 34 return !(_pins[1]);
swilliams346 0:9f1095365b9a 35 }
swilliams346 0:9f1095365b9a 36 inline bool Nav_Switch::left()
swilliams346 0:9f1095365b9a 37 {
swilliams346 0:9f1095365b9a 38 return !(_pins[2]);
swilliams346 0:9f1095365b9a 39 }
swilliams346 0:9f1095365b9a 40 inline bool Nav_Switch::right()
swilliams346 0:9f1095365b9a 41 {
swilliams346 0:9f1095365b9a 42 return !(_pins[3]);
swilliams346 0:9f1095365b9a 43 }
swilliams346 0:9f1095365b9a 44 inline bool Nav_Switch::fire()
swilliams346 0:9f1095365b9a 45 {
swilliams346 0:9f1095365b9a 46 return !(_pins[4]);
swilliams346 0:9f1095365b9a 47 }
swilliams346 0:9f1095365b9a 48 inline int Nav_Switch::read()
swilliams346 0:9f1095365b9a 49 {
swilliams346 0:9f1095365b9a 50 return _pins.read();
swilliams346 0:9f1095365b9a 51 }
swilliams346 0:9f1095365b9a 52 inline Nav_Switch::operator int ()
swilliams346 0:9f1095365b9a 53 {
swilliams346 0:9f1095365b9a 54 return _pins.read();
swilliams346 0:9f1095365b9a 55 }