Simon Stillwell
/
SKPangJoystickBus
SKPang board Joystick to Serial and Mbed LEDs
main.cpp@0:fa0736e4d371, 2010-09-07 (annotated)
- Committer:
- simno
- Date:
- Tue Sep 07 21:11:51 2010 +0000
- Revision:
- 0:fa0736e4d371
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
simno | 0:fa0736e4d371 | 1 | // |
simno | 0:fa0736e4d371 | 2 | // The SKPang board has a joystick wired to pins 21 to 25. |
simno | 0:fa0736e4d371 | 3 | // This is my first go at using BusIn to read multiple pins as a bus. |
simno | 0:fa0736e4d371 | 4 | // My biggest surprise is that the pins are high all the time unless the joysick goes left, right, up, down, click |
simno | 0:fa0736e4d371 | 5 | // at which time each goes low. |
simno | 0:fa0736e4d371 | 6 | // The text output goes to the serial out, if it is running, and the Mbed internal leds represent: |
simno | 0:fa0736e4d371 | 7 | // 1 = left |
simno | 0:fa0736e4d371 | 8 | // 2 = up |
simno | 0:fa0736e4d371 | 9 | // 3 = down |
simno | 0:fa0736e4d371 | 10 | // 4 = right |
simno | 0:fa0736e4d371 | 11 | // all = click |
simno | 0:fa0736e4d371 | 12 | // |
simno | 0:fa0736e4d371 | 13 | #include "mbed.h" |
simno | 0:fa0736e4d371 | 14 | |
simno | 0:fa0736e4d371 | 15 | BusIn joystick(p21, p22, p23, p24, p25); |
simno | 0:fa0736e4d371 | 16 | Timer mytimer; |
simno | 0:fa0736e4d371 | 17 | DigitalOut myledLeft(LED1); |
simno | 0:fa0736e4d371 | 18 | DigitalOut myledUp(LED2); |
simno | 0:fa0736e4d371 | 19 | DigitalOut myledDown(LED3); |
simno | 0:fa0736e4d371 | 20 | DigitalOut myledRight(LED4); |
simno | 0:fa0736e4d371 | 21 | |
simno | 0:fa0736e4d371 | 22 | int main() { |
simno | 0:fa0736e4d371 | 23 | mytimer.start(); |
simno | 0:fa0736e4d371 | 24 | |
simno | 0:fa0736e4d371 | 25 | int intStart = mytimer.read_ms(); |
simno | 0:fa0736e4d371 | 26 | while(1) { |
simno | 0:fa0736e4d371 | 27 | if((mytimer.read_ms() - intStart) >= 250) |
simno | 0:fa0736e4d371 | 28 | { |
simno | 0:fa0736e4d371 | 29 | myledLeft = 0; |
simno | 0:fa0736e4d371 | 30 | myledUp = 0; |
simno | 0:fa0736e4d371 | 31 | myledDown = 0; |
simno | 0:fa0736e4d371 | 32 | myledRight = 0; |
simno | 0:fa0736e4d371 | 33 | intStart = mytimer.read_ms(); |
simno | 0:fa0736e4d371 | 34 | switch(joystick) { |
simno | 0:fa0736e4d371 | 35 | case 0x00: |
simno | 0:fa0736e4d371 | 36 | printf("0x00\r\n"); |
simno | 0:fa0736e4d371 | 37 | break; |
simno | 0:fa0736e4d371 | 38 | case 0x01: |
simno | 0:fa0736e4d371 | 39 | printf("0x01\r\n"); |
simno | 0:fa0736e4d371 | 40 | break; |
simno | 0:fa0736e4d371 | 41 | case 0x02: |
simno | 0:fa0736e4d371 | 42 | printf("0x02\r\n"); |
simno | 0:fa0736e4d371 | 43 | break; |
simno | 0:fa0736e4d371 | 44 | case 0x03: |
simno | 0:fa0736e4d371 | 45 | printf("0x03\r\n"); |
simno | 0:fa0736e4d371 | 46 | break; |
simno | 0:fa0736e4d371 | 47 | case 0x04: |
simno | 0:fa0736e4d371 | 48 | printf("0x04\r\n"); |
simno | 0:fa0736e4d371 | 49 | break; |
simno | 0:fa0736e4d371 | 50 | case 0x05: |
simno | 0:fa0736e4d371 | 51 | printf("0x05\r\n"); |
simno | 0:fa0736e4d371 | 52 | break; |
simno | 0:fa0736e4d371 | 53 | case 0x06: |
simno | 0:fa0736e4d371 | 54 | printf("0x06\r\n"); |
simno | 0:fa0736e4d371 | 55 | break; |
simno | 0:fa0736e4d371 | 56 | case 0x07: |
simno | 0:fa0736e4d371 | 57 | printf("0x07 Up and Left\r\n"); |
simno | 0:fa0736e4d371 | 58 | myledUp = 1; |
simno | 0:fa0736e4d371 | 59 | myledLeft = 1; |
simno | 0:fa0736e4d371 | 60 | break; |
simno | 0:fa0736e4d371 | 61 | case 0x08: |
simno | 0:fa0736e4d371 | 62 | printf("0x08\r\n"); |
simno | 0:fa0736e4d371 | 63 | break; |
simno | 0:fa0736e4d371 | 64 | case 0x09: |
simno | 0:fa0736e4d371 | 65 | printf("0x09\r\n"); |
simno | 0:fa0736e4d371 | 66 | break; |
simno | 0:fa0736e4d371 | 67 | case 0x0a: |
simno | 0:fa0736e4d371 | 68 | printf("0x0a\r\n"); |
simno | 0:fa0736e4d371 | 69 | break; |
simno | 0:fa0736e4d371 | 70 | case 0x0b: |
simno | 0:fa0736e4d371 | 71 | printf("0x0b\r\n"); |
simno | 0:fa0736e4d371 | 72 | break; |
simno | 0:fa0736e4d371 | 73 | case 0x0c: |
simno | 0:fa0736e4d371 | 74 | printf("0x0c\r\n"); |
simno | 0:fa0736e4d371 | 75 | break; |
simno | 0:fa0736e4d371 | 76 | case 0x0d: |
simno | 0:fa0736e4d371 | 77 | printf("0x0d Up and Right\r\n"); |
simno | 0:fa0736e4d371 | 78 | myledUp = 1; |
simno | 0:fa0736e4d371 | 79 | myledRight = 1; |
simno | 0:fa0736e4d371 | 80 | break; |
simno | 0:fa0736e4d371 | 81 | case 0x0e: |
simno | 0:fa0736e4d371 | 82 | printf("0x0e\r\n"); |
simno | 0:fa0736e4d371 | 83 | break; |
simno | 0:fa0736e4d371 | 84 | case 0x0f: |
simno | 0:fa0736e4d371 | 85 | printf("0x0f Up\r\n"); |
simno | 0:fa0736e4d371 | 86 | myledUp = 1; |
simno | 0:fa0736e4d371 | 87 | break; |
simno | 0:fa0736e4d371 | 88 | case 0x10: |
simno | 0:fa0736e4d371 | 89 | printf("0x10\r\n"); |
simno | 0:fa0736e4d371 | 90 | break; |
simno | 0:fa0736e4d371 | 91 | case 0x11: |
simno | 0:fa0736e4d371 | 92 | printf("0x11\r\n"); |
simno | 0:fa0736e4d371 | 93 | break; |
simno | 0:fa0736e4d371 | 94 | case 0x12: |
simno | 0:fa0736e4d371 | 95 | printf("0x12\r\n"); |
simno | 0:fa0736e4d371 | 96 | break; |
simno | 0:fa0736e4d371 | 97 | case 0x13: |
simno | 0:fa0736e4d371 | 98 | printf("0x13 Down and Left\r\n"); |
simno | 0:fa0736e4d371 | 99 | myledDown = 1; |
simno | 0:fa0736e4d371 | 100 | myledLeft = 1; |
simno | 0:fa0736e4d371 | 101 | break; |
simno | 0:fa0736e4d371 | 102 | case 0x14: |
simno | 0:fa0736e4d371 | 103 | printf("0x14\r\n"); |
simno | 0:fa0736e4d371 | 104 | break; |
simno | 0:fa0736e4d371 | 105 | case 0x15: |
simno | 0:fa0736e4d371 | 106 | printf("0x15\r\n"); |
simno | 0:fa0736e4d371 | 107 | break; |
simno | 0:fa0736e4d371 | 108 | case 0x16: |
simno | 0:fa0736e4d371 | 109 | printf("0x16\r\n"); |
simno | 0:fa0736e4d371 | 110 | break; |
simno | 0:fa0736e4d371 | 111 | case 0x17: |
simno | 0:fa0736e4d371 | 112 | printf("0x17 Left\r\n"); |
simno | 0:fa0736e4d371 | 113 | myledLeft = 1; |
simno | 0:fa0736e4d371 | 114 | break; |
simno | 0:fa0736e4d371 | 115 | case 0x18: |
simno | 0:fa0736e4d371 | 116 | printf("0x18\r\n"); |
simno | 0:fa0736e4d371 | 117 | break; |
simno | 0:fa0736e4d371 | 118 | case 0x19: |
simno | 0:fa0736e4d371 | 119 | printf("0x19 Down and Right\r\n"); |
simno | 0:fa0736e4d371 | 120 | myledDown = 1; |
simno | 0:fa0736e4d371 | 121 | myledRight = 1; |
simno | 0:fa0736e4d371 | 122 | break; |
simno | 0:fa0736e4d371 | 123 | case 0x1a: |
simno | 0:fa0736e4d371 | 124 | printf("0x1a\r\n"); |
simno | 0:fa0736e4d371 | 125 | break; |
simno | 0:fa0736e4d371 | 126 | case 0x1b: |
simno | 0:fa0736e4d371 | 127 | printf("0x1b Down\r\n"); |
simno | 0:fa0736e4d371 | 128 | myledDown = 1; |
simno | 0:fa0736e4d371 | 129 | break; |
simno | 0:fa0736e4d371 | 130 | case 0x1c: |
simno | 0:fa0736e4d371 | 131 | printf("0x1c\r\n"); |
simno | 0:fa0736e4d371 | 132 | break; |
simno | 0:fa0736e4d371 | 133 | case 0x1d: |
simno | 0:fa0736e4d371 | 134 | printf("0x1d Right\r\n"); |
simno | 0:fa0736e4d371 | 135 | myledRight = 1; |
simno | 0:fa0736e4d371 | 136 | break; |
simno | 0:fa0736e4d371 | 137 | case 0x1e: |
simno | 0:fa0736e4d371 | 138 | printf("0x1e Click\r\n"); |
simno | 0:fa0736e4d371 | 139 | myledLeft = 1; |
simno | 0:fa0736e4d371 | 140 | myledUp = 1; |
simno | 0:fa0736e4d371 | 141 | myledDown = 1; |
simno | 0:fa0736e4d371 | 142 | myledRight = 1; |
simno | 0:fa0736e4d371 | 143 | break; |
simno | 0:fa0736e4d371 | 144 | case 0x1f: |
simno | 0:fa0736e4d371 | 145 | printf("0x1f Nothing pressed\r\n"); |
simno | 0:fa0736e4d371 | 146 | break; |
simno | 0:fa0736e4d371 | 147 | } |
simno | 0:fa0736e4d371 | 148 | } |
simno | 0:fa0736e4d371 | 149 | } |
simno | 0:fa0736e4d371 | 150 | } |