...

Dependencies:   MMA8451Q mbed-rtos mbed

Fork of Super_Hans_USB by Tristan Hughes

Files at this revision

API Documentation at this revision

Comitter:
trisjph
Date:
Mon Dec 16 11:04:05 2013 +0000
Child:
1:e1a1bf8c36d9
Commit message:
Inital;

Changed in this revision

MMA8451Q.lib Show annotated file Show diff for this revision Revisions of this file
USBDevice.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed-rtos.lib Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MMA8451Q.lib	Mon Dec 16 11:04:05 2013 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/emilmont/code/MMA8451Q/#c4d879a39775
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/USBDevice.lib	Mon Dec 16 11:04:05 2013 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/USBDevice/#4f6df64750bd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Dec 16 11:04:05 2013 +0000
@@ -0,0 +1,73 @@
+#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();
+        key_mouse.move(-acc.getAccX()*10, 0);
+        key_mouse.move(0, acc.getAccY()*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) {
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed-rtos.lib	Mon Dec 16 11:04:05 2013 +0000
@@ -0,0 +1,1 @@
+https://mbed.org/users/mbed_official/code/mbed-rtos/#29007aef10a4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Mon Dec 16 11:04:05 2013 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/a9913a65894f
\ No newline at end of file