Dwayne Dilbeck
/
HW2_3_USB_POT_Mouse
Homework #2 Problem #3
Fork of USBMouse_HelloWorld by
main.cpp@6:e35a1f72d90f, 2013-07-17 (annotated)
- Committer:
- jakowisp
- Date:
- Wed Jul 17 02:00:07 2013 +0000
- Revision:
- 6:e35a1f72d90f
- Parent:
- 5:2a28b4664b0a
USB Device Interface: Architecture, Protocols, and Programing:; Homework#2 Problem #3
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
samux | 2:e7b766501add | 1 | #include "mbed.h" |
samux | 2:e7b766501add | 2 | #include "USBMouse.h" |
samux | 2:e7b766501add | 3 | |
jakowisp | 6:e35a1f72d90f | 4 | struct positionXY { |
jakowisp | 6:e35a1f72d90f | 5 | int x; |
jakowisp | 6:e35a1f72d90f | 6 | int y; |
jakowisp | 6:e35a1f72d90f | 7 | } mousePosition; |
jakowisp | 6:e35a1f72d90f | 8 | |
jakowisp | 5:2a28b4664b0a | 9 | USBMouse mouse(ABS_MOUSE); |
jakowisp | 5:2a28b4664b0a | 10 | AnalogIn potA(p20); |
jakowisp | 5:2a28b4664b0a | 11 | AnalogIn potB(p19); |
jakowisp | 5:2a28b4664b0a | 12 | |
jakowisp | 6:e35a1f72d90f | 13 | BusIn button(p12,p15,p13); |
jakowisp | 5:2a28b4664b0a | 14 | int lastButtonState=0,buttonChanged=0,buttonState=0; |
jakowisp | 5:2a28b4664b0a | 15 | |
jakowisp | 6:e35a1f72d90f | 16 | void DetermineMousePressReleaseAndSend(int buttonState) { |
jakowisp | 6:e35a1f72d90f | 17 | buttonChanged = buttonState ^ lastButtonState; |
jakowisp | 6:e35a1f72d90f | 18 | mouse.press(buttonState & buttonChanged); |
jakowisp | 6:e35a1f72d90f | 19 | mouse.release(!buttonState & buttonChanged); |
jakowisp | 6:e35a1f72d90f | 20 | } |
jakowisp | 5:2a28b4664b0a | 21 | |
jakowisp | 6:e35a1f72d90f | 22 | int ReadAnalogValueAndShift(AnalogIn *pot) { |
jakowisp | 6:e35a1f72d90f | 23 | return pot->read_u16() >> 1; |
jakowisp | 6:e35a1f72d90f | 24 | } |
jakowisp | 6:e35a1f72d90f | 25 | |
jakowisp | 6:e35a1f72d90f | 26 | void DetermineXAndY(struct positionXY *position) { |
jakowisp | 6:e35a1f72d90f | 27 | position->x= ReadAnalogValueAndShift(&potA); |
jakowisp | 6:e35a1f72d90f | 28 | position->y= ReadAnalogValueAndShift(&potB); |
jakowisp | 6:e35a1f72d90f | 29 | } |
samux | 2:e7b766501add | 30 | |
samux | 2:e7b766501add | 31 | int main() { |
samux | 2:e7b766501add | 32 | while (1) { |
jakowisp | 6:e35a1f72d90f | 33 | DetermineXAndY(&mousePosition); |
jakowisp | 6:e35a1f72d90f | 34 | mouse.move(mousePosition.x, mousePosition.y); |
jakowisp | 5:2a28b4664b0a | 35 | buttonState = button.read() & 0x7; |
jakowisp | 6:e35a1f72d90f | 36 | DetermineMousePressReleaseAndSend(buttonState); |
samux | 2:e7b766501add | 37 | wait(0.001); |
samux | 2:e7b766501add | 38 | } |
jakowisp | 6:e35a1f72d90f | 39 | } |