Complete

Dependencies:   mbed

Committer:
mikeb
Date:
Sat Jan 30 03:22:41 2016 +0000
Revision:
3:ecfa4fa0b5a7
Parent:
1:c5bc18044085
Complete;

Who changed what in which revision?

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