...
Dependencies: MMA8451Q mbed-rtos mbed
Fork of Super_Hans_USB by
main.cpp
- Committer:
- anuragdhutti
- Date:
- 2013-12-27
- Revision:
- 1:e1a1bf8c36d9
- Parent:
- 0:d270a9981e69
File content as of revision 1:e1a1bf8c36d9:
#include "mbed.h" #include "rtos.h" #define MMA8451_I2C_ADDRESS (0x1d<<1) #include "MMA8451Q.h" #include "USBMouseKeyboard.h" #define PI 3.14159265 PwmOut led1(LED2); MMA8451Q acc(PTE25, PTE24, MMA8451_I2C_ADDRESS); AnalogIn ain(PTC2); Serial pc(USBTX, USBRX); USBMouseKeyboard key_mouse; Mutex USB_mutex; //USBHID key_mouse; void click_thread(void const *args) { int press; while(true) { if( (ain.read()>0.3) && (press == 0) ) { press = 1; led1 != led1; pc.printf("%i\n", press); USB_mutex.lock(); key_mouse.press(MOUSE_LEFT); USB_mutex.unlock(); } else if ( (ain.read()<0.3) && (press == 1) ) { press = 0; pc.printf("%i\n", press); USB_mutex.lock(); key_mouse.release(MOUSE_LEFT); USB_mutex.unlock(); } Thread::wait(100); } } void mouse_thread(void const *args) { while(true) { USB_mutex.lock(); pc.printf("%f, %f, %f\n", acc.getAccX(), acc.getAccY(), acc.getAccZ() ); if (acc.getAccZ() key_mouse.move(-acc.getAccZ()*10, 0); key_mouse.move(0, acc.getAccX()*10); USB_mutex.unlock(); Thread::wait(1); } } void heartbeat_thread(void const *args) { int i; led1.period(0.001); while(true) { for(i=0; i<180; i++) { led1 = sin(i*PI/180); Thread::wait(10); } } } int main() { //Thread click(click_thread); Thread mouse(mouse_thread); Thread heartbeat(heartbeat_thread); led1 = 1.0; while (true) { } }