Homework #2 Problem #3

Dependencies:   USBDevice mbed

Fork of USBMouse_HelloWorld by Samuel Mokrani

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?

UserRevisionLine numberNew 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 }