Julio González
/
Nucleo_Usb_JoyMouse
Example of usb mouse on smt32 platform using a analog 2-axis joystick
main.cpp@7:bb9d609a8493, 2017-05-09 (annotated)
- Committer:
- julgonmej
- Date:
- Tue May 09 15:56:24 2017 +0000
- Revision:
- 7:bb9d609a8493
- Parent:
- 6:989396ea046f
- Child:
- 8:427f11739ba4
Working
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jamike | 0:6410755cb90c | 1 | #include "mbed.h" |
jamike | 0:6410755cb90c | 2 | |
jamike | 0:6410755cb90c | 3 | #include <math.h> |
jamike | 0:6410755cb90c | 4 | |
jamike | 0:6410755cb90c | 5 | #include "USBMouse.h" |
jamike | 0:6410755cb90c | 6 | |
jamike | 0:6410755cb90c | 7 | USBMouse mouse(ABS_MOUSE); |
julgonmej | 5:b3c465e3e54e | 8 | DigitalOut myled(LED1); |
jamike | 0:6410755cb90c | 9 | |
julgonmej | 7:bb9d609a8493 | 10 | AnalogIn ex(PC_2); |
julgonmej | 7:bb9d609a8493 | 11 | AnalogIn ey(PC_3); |
julgonmej | 7:bb9d609a8493 | 12 | DigitalIn click(PB_7, PullUp); |
julgonmej | 6:989396ea046f | 13 | |
julgonmej | 6:989396ea046f | 14 | Serial mipc(USBTX, USBRX); |
julgonmej | 6:989396ea046f | 15 | |
jamike | 0:6410755cb90c | 16 | int main(void) { |
julgonmej | 6:989396ea046f | 17 | mipc.printf("HOLA"); |
julgonmej | 7:bb9d609a8493 | 18 | unsigned int x_center = (X_MAX_ABS - X_MIN_ABS)/2; |
julgonmej | 7:bb9d609a8493 | 19 | unsigned int y_center = (Y_MAX_ABS - Y_MIN_ABS)/2; |
julgonmej | 7:bb9d609a8493 | 20 | uint16_t x_screen = x_center; |
julgonmej | 7:bb9d609a8493 | 21 | uint16_t y_screen = y_center; |
julgonmej | 7:bb9d609a8493 | 22 | uint16_t px; |
julgonmej | 7:bb9d609a8493 | 23 | uint16_t py; |
julgonmej | 7:bb9d609a8493 | 24 | bool sw = 0; |
julgonmej | 7:bb9d609a8493 | 25 | bool swOld = 0; |
julgonmej | 5:b3c465e3e54e | 26 | myled = 0; |
jamike | 0:6410755cb90c | 27 | |
jamike | 0:6410755cb90c | 28 | while (1) { |
julgonmej | 5:b3c465e3e54e | 29 | myled = !myled; |
julgonmej | 7:bb9d609a8493 | 30 | px = ex.read_u16(); |
julgonmej | 7:bb9d609a8493 | 31 | py = ey.read_u16(); |
julgonmej | 7:bb9d609a8493 | 32 | sw = !click.read(); |
julgonmej | 7:bb9d609a8493 | 33 | //mipc.printf("PALANCA X %d, PALANCA Y %d, BOTON %d\r\n", px, py, sw); |
julgonmej | 7:bb9d609a8493 | 34 | |
julgonmej | 7:bb9d609a8493 | 35 | if(px > 40000 || px < 25000) { |
julgonmej | 7:bb9d609a8493 | 36 | x_screen += (px - 32768)/250; |
julgonmej | 7:bb9d609a8493 | 37 | } |
julgonmej | 7:bb9d609a8493 | 38 | if(py > 40000 || py < 25000) { |
julgonmej | 7:bb9d609a8493 | 39 | y_screen += (py - 32768)/250; |
julgonmej | 7:bb9d609a8493 | 40 | } |
julgonmej | 7:bb9d609a8493 | 41 | //mipc.printf("PUNTO X %d, PUNTO Y %d\r\n", x_screen, y_screen); |
jamike | 0:6410755cb90c | 42 | mouse.move(x_screen, y_screen); |
julgonmej | 7:bb9d609a8493 | 43 | mouse.update(x_screen, y_screen,0,0); |
julgonmej | 7:bb9d609a8493 | 44 | |
julgonmej | 7:bb9d609a8493 | 45 | if(!swOld && sw) { |
julgonmej | 7:bb9d609a8493 | 46 | //mouse.click(MOUSE_LEFT); |
julgonmej | 7:bb9d609a8493 | 47 | mouse.update(x_screen, y_screen,1,0); |
julgonmej | 7:bb9d609a8493 | 48 | swOld = 1; |
julgonmej | 7:bb9d609a8493 | 49 | //mipc.printf("CLICK"); |
julgonmej | 7:bb9d609a8493 | 50 | } else if (swOld && !sw){ |
julgonmej | 7:bb9d609a8493 | 51 | swOld = 0; |
julgonmej | 7:bb9d609a8493 | 52 | mouse.update(x_screen, y_screen,0,0); |
julgonmej | 7:bb9d609a8493 | 53 | } |
julgonmej | 7:bb9d609a8493 | 54 | |
julgonmej | 7:bb9d609a8493 | 55 | //mouse.move(x_screen, y_screen); |
julgonmej | 7:bb9d609a8493 | 56 | wait(0.007); |
jamike | 0:6410755cb90c | 57 | } |
jamike | 0:6410755cb90c | 58 | } |