A game for Lab 4 of ECE 4180
Dependencies: 4DGL-uLCD-SE LSM9DS1_Library SDFileSystem mbed-rtos mbed wave_player
InputHandler.cpp
- Committer:
- Dogstopper
- Date:
- 2016-03-12
- Revision:
- 3:27889fffc2f7
- Parent:
- 2:623f29bad35c
File content as of revision 3:27889fffc2f7:
#include "InputHandler.h" #define START_THREAD 1 InputHandler::InputHandler(PinName sda, PinName scl, uint8_t xgAddr, uint8_t mAddr, PinName digitalIn) :imu(sda, scl, xgAddr, mAddr), pushButton(digitalIn, PullUp) { imu.begin(); // imu.calibrate(1); } Thread* InputHandler::start() { return new Thread(&InputHandler::threadStarter, this, osPriorityNormal,1024); } float InputHandler::getXAccel() { stdio_mutex.lock(); float temp = xAccel; stdio_mutex.unlock(); return temp; } float InputHandler::getYAccel() { stdio_mutex.lock(); float temp = yAccel; stdio_mutex.unlock(); return temp; } float InputHandler::getZAccel() { stdio_mutex.lock(); float temp = zAccel; stdio_mutex.unlock(); return temp; } bool InputHandler::getPushed() { stdio_mutex.lock(); float temp = isPushed; stdio_mutex.unlock(); return temp; } void InputHandler::threadStarter(void const *p) { InputHandler *instance = (InputHandler*)p; instance->retrieveInputs(); } void InputHandler::retrieveInputs() { while(true) { imu.readAccel(); stdio_mutex.lock(); xAccel = -imu.calcAccel(imu.ax); yAccel = -imu.calcAccel(imu.ay); zAccel = -imu.calcAccel(imu.az); isPushed = pushButton.read() == 0; //printf("\t\txAccel: %.6f\n\ryAccel: %.6f\n\risPushed: %s", xAccel, yAccel, isPushed ? "true" : "false"); stdio_mutex.unlock(); Thread::wait(30); } }