Sound update

Dependencies:   4DGL-uLCD-SE Physac-MBED PinDetect SDFileSystem mbed-rtos mbed

Committer:
jaybalar
Date:
Fri Dec 09 21:28:32 2022 +0000
Revision:
31:b08cc3c126d6
Parent:
23:214c0c828d98
update

Who changed what in which revision?

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