SKPang board Joystick to Serial and Mbed LEDs

Dependencies:   mbed

Committer:
simno
Date:
Tue Sep 07 21:11:51 2010 +0000
Revision:
0:fa0736e4d371

        

Who changed what in which revision?

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