This is the first version of a Fishing Mini-game. It uses a navigational switch as a button and a joystick, playing wav files from a SD card, and a uLCD screen to show the fishing game

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

Nav_Switch.h

Committer:
jd0205
Date:
2016-03-17
Revision:
1:8dd8fafa7fc8
Parent:
0:5d811b6879d5

File content as of revision 1:8dd8fafa7fc8:

class Nav_Switch
{
    public:
        Nav_Switch(PinName up,PinName down,PinName left,PinName right,PinName fire);
        int read();
    //boolean functions to test each switch
        bool up();
        bool down();
        bool left();
        bool right();
        bool fire();
    //automatic read on RHS
        operator int ();
    //index to any switch array style
        bool operator[](int index) {
            return _pins[index];
        };
    private:
        BusIn _pins; 
};

Nav_Switch::Nav_Switch (PinName up,PinName down,PinName left,PinName right,PinName fire):
    _pins(up, down, left, right, fire)
    {
        _pins.mode(PullUp); //needed if pullups not on board or a bare nav switch is used - delete otherwise
        wait(0.001); //delays just a bit for pullups to pull inputs high
    }

inline bool Nav_Switch::up()
{
    return !(_pins[0]);
}

inline bool Nav_Switch::down()
{
    return !(_pins[1]);
}

inline bool Nav_Switch::left()
{
    return !(_pins[2]);
}

inline bool Nav_Switch::right()
{
    return !(_pins[3]);
}

inline bool Nav_Switch::fire()
{
    return !(_pins[4]);
}

inline int Nav_Switch::read()
{
    return _pins.read();
}

inline Nav_Switch::operator int ()
{
    return _pins.read();
}