Simon Stillwell / Mbed 2 deprecated SKPangJoystickBus

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //
00002 // The SKPang board has a joystick wired to pins 21 to 25.
00003 // This is my first go at using BusIn to read multiple pins as a bus.
00004 // My biggest surprise is that the pins are high all the time unless the joysick goes left, right, up, down, click
00005 // at which time each goes low.
00006 // The text output goes to the serial out, if it is running, and the Mbed internal leds represent:
00007 //  1 = left
00008 //  2 = up
00009 //  3 = down
00010 //  4 = right
00011 //  all = click
00012 //
00013 #include "mbed.h"
00014 
00015 BusIn joystick(p21, p22, p23, p24, p25);
00016 Timer mytimer;
00017 DigitalOut myledLeft(LED1);
00018 DigitalOut myledUp(LED2);
00019 DigitalOut myledDown(LED3);
00020 DigitalOut myledRight(LED4);
00021 
00022 int main() {
00023      mytimer.start();
00024     
00025      int intStart = mytimer.read_ms();
00026      while(1) {
00027          if((mytimer.read_ms() - intStart) >= 250)
00028          {
00029             myledLeft = 0;
00030             myledUp = 0;
00031             myledDown = 0;
00032             myledRight = 0;
00033             intStart = mytimer.read_ms();
00034             switch(joystick) {
00035                 case 0x00: 
00036                     printf("0x00\r\n"); 
00037                     break;
00038                 case 0x01: 
00039                     printf("0x01\r\n"); 
00040                     break;
00041                 case 0x02: 
00042                     printf("0x02\r\n"); 
00043                     break;
00044                 case 0x03: 
00045                     printf("0x03\r\n"); 
00046                     break;
00047                 case 0x04: 
00048                     printf("0x04\r\n"); 
00049                     break;
00050                 case 0x05: 
00051                     printf("0x05\r\n"); 
00052                     break;
00053                 case 0x06: 
00054                     printf("0x06\r\n"); 
00055                     break;
00056                 case 0x07: 
00057                     printf("0x07 Up and Left\r\n"); 
00058                     myledUp = 1;
00059                     myledLeft = 1;
00060                     break;
00061                 case 0x08: 
00062                     printf("0x08\r\n"); 
00063                     break;
00064                 case 0x09: 
00065                     printf("0x09\r\n"); 
00066                     break;
00067                 case 0x0a: 
00068                     printf("0x0a\r\n"); 
00069                     break;
00070                 case 0x0b: 
00071                     printf("0x0b\r\n"); 
00072                     break;
00073                 case 0x0c: 
00074                     printf("0x0c\r\n"); 
00075                     break;
00076                 case 0x0d: 
00077                     printf("0x0d Up and Right\r\n"); 
00078                     myledUp = 1;
00079                     myledRight = 1;
00080                     break;
00081                 case 0x0e: 
00082                     printf("0x0e\r\n"); 
00083                     break;
00084                 case 0x0f: 
00085                     printf("0x0f Up\r\n"); 
00086                     myledUp = 1;
00087                     break;
00088                 case 0x10: 
00089                     printf("0x10\r\n"); 
00090                     break;
00091                 case 0x11: 
00092                     printf("0x11\r\n"); 
00093                     break;
00094                 case 0x12: 
00095                     printf("0x12\r\n"); 
00096                     break;
00097                 case 0x13: 
00098                     printf("0x13 Down and Left\r\n"); 
00099                     myledDown = 1;
00100                     myledLeft = 1;
00101                     break;
00102                 case 0x14: 
00103                     printf("0x14\r\n"); 
00104                     break;
00105                 case 0x15: 
00106                     printf("0x15\r\n"); 
00107                     break;
00108                 case 0x16: 
00109                     printf("0x16\r\n"); 
00110                     break;
00111                 case 0x17: 
00112                     printf("0x17 Left\r\n"); 
00113                     myledLeft = 1;
00114                     break;
00115                 case 0x18: 
00116                     printf("0x18\r\n"); 
00117                     break;
00118                 case 0x19: 
00119                     printf("0x19 Down and Right\r\n"); 
00120                     myledDown = 1;
00121                     myledRight = 1;
00122                     break;
00123                 case 0x1a: 
00124                     printf("0x1a\r\n"); 
00125                     break;
00126                 case 0x1b: 
00127                     printf("0x1b Down\r\n"); 
00128                     myledDown = 1;
00129                     break;
00130                 case 0x1c: 
00131                     printf("0x1c\r\n"); 
00132                     break;
00133                 case 0x1d: 
00134                     printf("0x1d Right\r\n"); 
00135                     myledRight = 1;
00136                     break;
00137                 case 0x1e: 
00138                     printf("0x1e Click\r\n"); 
00139                     myledLeft = 1;
00140                     myledUp = 1;
00141                     myledDown = 1;
00142                     myledRight = 1;
00143                     break;
00144                 case 0x1f: 
00145                     printf("0x1f Nothing pressed\r\n"); 
00146                     break;
00147             }
00148         }
00149     }
00150 }