![](/media/cache/profiles/2ad53786265b672d888710f5183a13c7.jpg.50x50_q85.jpg)
USBMouse
main.cpp@0:e062501cfe81, 2015-12-13 (annotated)
- Committer:
- priyankapashte
- Date:
- Sun Dec 13 10:06:24 2015 +0000
- Revision:
- 0:e062501cfe81
USBDevice library modified
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
priyankapashte | 0:e062501cfe81 | 1 | #include "mbed.h" |
priyankapashte | 0:e062501cfe81 | 2 | #include "USBMouse.h" |
priyankapashte | 0:e062501cfe81 | 3 | #include "Accelerometer.h" |
priyankapashte | 0:e062501cfe81 | 4 | #include "TouchSensor.h" |
priyankapashte | 0:e062501cfe81 | 5 | |
priyankapashte | 0:e062501cfe81 | 6 | #define MMA8451_I2C_ADDRESS (0x1d<<1) |
priyankapashte | 0:e062501cfe81 | 7 | |
priyankapashte | 0:e062501cfe81 | 8 | USBMouse mouse; |
priyankapashte | 0:e062501cfe81 | 9 | Accelerometer acc(PTE25, PTE24, MMA8451_I2C_ADDRESS); |
priyankapashte | 0:e062501cfe81 | 10 | TouchSensor tsi; |
priyankapashte | 0:e062501cfe81 | 11 | |
priyankapashte | 0:e062501cfe81 | 12 | typedef enum {NONE = 0, LEFT, RIGHT} Click; |
priyankapashte | 0:e062501cfe81 | 13 | |
priyankapashte | 0:e062501cfe81 | 14 | int main() { |
priyankapashte | 0:e062501cfe81 | 15 | int16_t x = 0, y = 0; |
priyankapashte | 0:e062501cfe81 | 16 | float t; |
priyankapashte | 0:e062501cfe81 | 17 | Click in_click = NONE; |
priyankapashte | 0:e062501cfe81 | 18 | |
priyankapashte | 0:e062501cfe81 | 19 | while (1) { |
priyankapashte | 0:e062501cfe81 | 20 | t = acc.Acc_X(); |
priyankapashte | 0:e062501cfe81 | 21 | t *= 10/1.5; |
priyankapashte | 0:e062501cfe81 | 22 | y = (int16_t) t; |
priyankapashte | 0:e062501cfe81 | 23 | |
priyankapashte | 0:e062501cfe81 | 24 | t = acc.Acc_Y(); |
priyankapashte | 0:e062501cfe81 | 25 | t *= 10/1.5; |
priyankapashte | 0:e062501cfe81 | 26 | x = - (int16_t) t; |
priyankapashte | 0:e062501cfe81 | 27 | |
priyankapashte | 0:e062501cfe81 | 28 | t = tsi.readPercentage(); |
priyankapashte | 0:e062501cfe81 | 29 | |
priyankapashte | 0:e062501cfe81 | 30 | if (in_click == NONE) { |
priyankapashte | 0:e062501cfe81 | 31 | if (t > 0.6) { |
priyankapashte | 0:e062501cfe81 | 32 | mouse.press(MOUSE_LEFT); |
priyankapashte | 0:e062501cfe81 | 33 | in_click = LEFT; |
priyankapashte | 0:e062501cfe81 | 34 | } else if (t > 0.1) { |
priyankapashte | 0:e062501cfe81 | 35 | mouse.press(MOUSE_RIGHT); |
priyankapashte | 0:e062501cfe81 | 36 | in_click = RIGHT; |
priyankapashte | 0:e062501cfe81 | 37 | } |
priyankapashte | 0:e062501cfe81 | 38 | } else if (in_click == LEFT) { |
priyankapashte | 0:e062501cfe81 | 39 | if (t <= 0.6) { |
priyankapashte | 0:e062501cfe81 | 40 | mouse.release(MOUSE_LEFT); |
priyankapashte | 0:e062501cfe81 | 41 | in_click = NONE; |
priyankapashte | 0:e062501cfe81 | 42 | } |
priyankapashte | 0:e062501cfe81 | 43 | } else { |
priyankapashte | 0:e062501cfe81 | 44 | if (t > 0.6 || t <= 0.1) { |
priyankapashte | 0:e062501cfe81 | 45 | mouse.release(MOUSE_RIGHT); |
priyankapashte | 0:e062501cfe81 | 46 | in_click = NONE; |
priyankapashte | 0:e062501cfe81 | 47 | } |
priyankapashte | 0:e062501cfe81 | 48 | } |
priyankapashte | 0:e062501cfe81 | 49 | |
priyankapashte | 0:e062501cfe81 | 50 | mouse.move(x, y); |
priyankapashte | 0:e062501cfe81 | 51 | wait(0.001); |
priyankapashte | 0:e062501cfe81 | 52 | } |
priyankapashte | 0:e062501cfe81 | 53 | } |