David's dead reckoning code for the LVBots competition on March 6th. Uses the mbed LPC1768, DRV8835, QTR-3RC, and two DC motors with encoders.

Dependencies:   PololuEncoder Pacer mbed GeneralDebouncer

buttons.cpp

Committer:
DavidEGrayson
Date:
2019-08-13
Revision:
48:597738b77f77
Parent:
17:2df9861f53ee

File content as of revision 48:597738b77f77:

#include <mbed.h>
#include "buttons.h"
#include "GeneralDebouncer.h"

#define BUTTON_DEBOUNCE_TIME 20000

DigitalIn button1(p13);

GeneralDebouncer button1Debouncer(5000);

void buttonsInit()
{
    button1.mode(PullUp);
}

bool button1IsPressed()
{
    return button1.read() == 0;
}

void button1Montior()
{
    button1Debouncer.update(button1IsPressed());
}

bool button1DefinitelyInState(bool state)
{
    button1Montior();
    return button1Debouncer.getState() == state &&
      button1Debouncer.getTimeInCurrentStateMicroseconds() > BUTTON_DEBOUNCE_TIME;
}

bool button1DefinitelyPressed()
{
    return button1DefinitelyInState(true);
}

bool button1DefinitelyReleased()
{
    return button1DefinitelyInState(false);
}