Code for autonomous ground vehicle, Data Bus, 3rd place winner in 2012 Sparkfun AVC.

Dependencies:   Watchdog mbed Schedule SimpleFilter LSM303DLM PinDetect DebounceIn Servo

UI/Buttons/Buttons.cpp

Committer:
shimniok
Date:
2012-06-20
Revision:
0:826c6171fc1b

File content as of revision 0:826c6171fc1b:

#include "Buttons.h"
#include "PinDetect.h"

PinDetect nextButton(p14);
PinDetect selectButton(p16);            // Input selectButton
PinDetect prevButton(p15);

Buttons::Buttons(void): which(0), pressed(false)
{
}

void Buttons::init()
{

    // Set up button (plugs into two GPIOs, active low
    selectButton.mode(PullUp);
    selectButton.setSamplesTillAssert(50);
    selectButton.setAssertValue(0); // active low logic
    selectButton.setSampleFrequency(50); // us
    selectButton.attach_asserted( this, &Buttons::selectPressed );
    
    nextButton.mode(PullUp);
    nextButton.setSamplesTillAssert(50);
    nextButton.setAssertValue(0); // active low logic
    nextButton.setSampleFrequency(50); // us
    nextButton.attach_asserted( this, &Buttons::nextPressed );

    prevButton.mode(PullUp);
    prevButton.setSamplesTillAssert(50);
    prevButton.setAssertValue(0); // active low logic
    prevButton.setSampleFrequency(50); // us
    prevButton.attach_asserted( this, &Buttons::prevPressed );
}

void Buttons::nextPressed() 
{
    pressed = true;
    which = NEXT_BUTTON;
}

void Buttons::prevPressed() 
{
    pressed = true;
    which = PREV_BUTTON;
}

void Buttons::selectPressed()
{
    pressed = true;
    which = SELECT_BUTTON;
}