Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Diff: main.cpp
- Revision:
- 1:266895757ab3
- Parent:
- 0:4959c491059f
- Child:
- 2:98ab6e6dd8aa
--- a/main.cpp Wed Sep 17 10:34:08 2014 +0000
+++ b/main.cpp Thu Sep 18 09:54:45 2014 +0000
@@ -1,3 +1,24 @@
+/* This Bluetooth Remote uses a Bluefruit E-Z Key
+
+The default switch-key mapping for Bluefruit E-Z Key is
+#0 - Up Arrow
+#1 - Down Arrow
+#2 - Left Arrow
+#3 - Right Arrow
+#4 - Return
+#5 - Space
+#6 - the number '1'
+#7 - the number '2'
+#8 - lowercase 'w'
+#9 - lowercase 'a'
+#10 - lowercase 's'
+#11 - lowercase 'd'
+
+These however can be remapped to include any keys the user needs (Shift, Esc, Backspace, VolumeUp, Play/Pause)
+
+This Remote records all user input after one input has been entered.
+ */
+
#include "mbed.h"
#include "string.h"
@@ -8,41 +29,278 @@
DigitalOut enterswitch(p5);
DigitalOut spaceswitch(p6);
DigitalOut wswitch(p7);
-DigitalOut sswitch(p8);
-DigitalOut aswitch(p9);
-DigitalOut dswitch(p10);
-DigitalOut oneswitch(p11);
-DigitalOut twoswitch(p12);
-DigitalInOut upreader(p21);
-DigitalOut myled1 (LED1);
-DigitalOut myled2 (LED2);
+DigitalOut sswitch(p12);
+DigitalOut aswitch(p11);
+DigitalOut dswitch(p8);
+DigitalOut oneswitch(p13);
+DigitalOut twoswitch(p14 );
Serial bluefruit(p9, p10);
Serial pc(USBTX, USBRX);
InterruptIn playI(p25);
-Timer t;
-Timer t2;
-Timer t3;
-//Timer t4;
+Timer t, t2,t3;
char buf [9];
-char moves[200];
-unsigned long long times[200];
-unsigned long long times2[200];
-//unsigned long long times4[200];
-unsigned int i = 0;
-unsigned int j = 0;
-unsigned int z = 0;
-unsigned int k;
+char moves[400]; //change array size to increase recorded moves
+unsigned long long times[400]; //change array size to increase recorded moves
+unsigned long long times2[400]; //change array size to increase recorded moves
+unsigned int i, j, k, z = 0;
unsigned long long reader = 0;
-unsigned int off = 1;
-unsigned int twobuttons = 0;
-unsigned int onebutton = 0;
-unsigned int y = 0;
+unsigned int onebutton, twobuttons = 0;
+unsigned int subtractor;
+
+void t2_stop()
+{
+ t2.stop();
+ if(t2.read_ms()>0) {
+ times2[j] = t2.read_ms();
+ pc.printf("\n\r Press Time: %d", times2[j]);
+ pc.printf("\n");
+ }
+ t2.reset();
+ j++;
+}
+
+void t3_stop()
+{
+ t3.stop();
+ reader = t3.read_ms();
+ pc.printf("\n\r Time Taken %d", reader);
+ pc.printf("\n");
+ t3.reset();
+}
+
+void twobutton_handler()
+{
+ t2.stop();
+ twobuttons = 0;
+ times2[j] = t2.read_ms();
+ subtractor = times2[j];
+ pc.printf("\n\r Double Key Press Time: %d \n", times2[j]);
+ j++;
+}
+
+void onebutton_handler(char m)
+{
+ onebutton = 1;
+ t2.reset();
+ t2.start();
+ moves[i] = m;
+ switch(m) {
+ case 1:
+ pc.printf("\n\r Move: Up");
+ break;
+ case 2:
+ pc.printf("\n\r Move: Down");
+ break;
+ case 3:
+ pc.printf("\n\r Move: Left");
+ break;
+ case 4:
+ pc.printf("\n\r Move: Right");
+ break;
+ case 11:
+ pc.printf("\n\r Move: w");
+ break;
+ case 12:
+ pc.printf("\n\r Move: s");
+ break;
+ case 13:
+ pc.printf("\n\r Move: a");
+ break;
+ case 14:
+ pc.printf("\n\r Move: d");
+ break;
+ case 15:
+ pc.printf("\n\r Move: Space");
+ break;
+ case 16:
+ pc.printf("\n\r Move: Enter");
+ break;
+ case 17:
+ pc.printf("\n\r Move: One");
+ break;
+ case 18:
+ pc.printf("\n\r Move: Two");
+ break;
+
+ default:
+ break;
+ }
+ pc.printf("\n\r Position: %d", i);
+ t.stop();
+ times[i] = t.read_ms()-subtractor;
+ pc.printf("\n\r Gap Time: %d", times[i]);
+ t.reset();
+ i++;
+}
+
+void twobutton_instant(char n)
+{
+ twobuttons = 1;
+ t2.start();
+ moves[i] = n;
+ switch(n) {
+ case 5:
+ pc.printf("\n\r Move: Up + Right Instant");
+ break;
+ case 6:
+ pc.printf("\n\r Move: Up + Down Instant");
+ break;
+ case 7:
+ pc.printf("\n\r Move: Up + Left Instant");
+ break;
+ case 19:
+ pc.printf("\n\r Move: w + a Instant");
+ break;
+ case 20:
+ pc.printf("\n\r Move: w + d Instant");
+ break;
+ case 21:
+ pc.printf("\n\r Move: s + a Instant");
+ break;
+ case 22:
+ pc.printf("\n\r Move: s + d Instant");
+ break;
+ case 23:
+ pc.printf("\n\r Move: w + s Instant");
+ break;
+ case 24:
+ pc.printf("\n\r Move: a + d Instant");
+ break;
+ case 25:
+ pc.printf("\n\r Move: One + Two Instant");
+ break;
+ case 26:
+ pc.printf("\n\r Move: Up + Space Instant");
+ break;
+ case 27:
+ pc.printf("\n\r Move: Right + Space Instant");
+ break;
+ case 28:
+ pc.printf("\n\r Move: Left + Space Instant");
+ break;
+ case 29:
+ pc.printf("\n\r Move: Down + Space Instant");
+ break;
+ case 30:
+ pc.printf("\n\r Move: Up + Enter Instant");
+ break;
+ case 31:
+ pc.printf("\n\r Move: Down + Enter Instant");
+ break;
+ case 32:
+ pc.printf("\n\r Move: Right + Enter Instant");
+ break;
+ case 33:
+ pc.printf("\n\r Move: Left + Enter Instant");
+ default:
+ break;
+ }
+ pc.printf("\n\r Position: %d", i);
+ i++;
+}
+
+void twobutton(char p)
+{
+ onebutton = 0;
+ twobuttons = 1;
+ t2.start();
+ moves[i] = p;
+ switch(p) {
+ case 5:
+ pc.printf("\n\r Move: Up + Right");
+ break;
+ case 6:
+ pc.printf("\n\r Move: Up + Down");
+ break;
+ case 7:
+ pc.printf("\n\r Move: Up + Left");
+ break;
+ case 8:
+ pc.printf("\n\r Move: Down + Right");
+ break;
+ case 9:
+ pc.printf("\n\r Move: Down + Left");
+ break;
+ case 10:
+ pc.printf("\n\r Move: Right + Left");
+ break;
+ case 19:
+ pc.printf("\n\r Move: w + a");
+ break;
+ case 20:
+ pc.printf("\n\r Move: w + d");
+ break;
+ case 21:
+ pc.printf("\n\r Move: s + a");
+ break;
+ case 22:
+ pc.printf("\n\r Move: s + d");
+ break;
+ case 23:
+ pc.printf("\n\r Move: w + s");
+ break;
+ case 24:
+ pc.printf("\n\r Move: a + d");
+ break;
+ case 25:
+ pc.printf("\n\r Move: One + Two");
+ break;
+ case 26:
+ pc.printf("\n\r Move: Up + Space");
+ break;
+ case 27:
+ pc.printf("\n\r Move: Right + Space");
+ break;
+ case 28:
+ pc.printf("\n\r Move: Left + Space");
+ break;
+ case 29:
+ pc.printf("\n\r Move: Down + Space");
+ break;
+ case 30:
+ pc.printf("\n\r Move: Up + Enter");
+ break;
+ case 31:
+ pc.printf("\n\r Move: Down + Enter");
+ break;
+ case 32:
+ pc.printf("\n\r Move: Right + Enter");
+ break;
+ case 33:
+ pc.printf("\n\r Move: Left + Enter");
+ break;
+ default:
+ break;
+ }
+ pc.printf("\n\r Position: %d", i);
+ i++;
+}
+
+void TwoButtons(char l)
+{
+ t2_stop();
+
+ if(onebutton == 0) {
+ twobutton_instant(l);
+ } else {
+ twobutton(l);
+ }
+}
+
+void OneButton(char q)
+{
+ subtractor = 0;
+ if (twobuttons) {
+ twobutton_handler();
+ }
+ onebutton_handler(q);
+}
void comparison(char *b)
{
- char *up, *down, *left, *right, *nobutton, *upright, *updown, *upleft, *rightleft, *downright, *downleft;
- unsigned int subtractor;
+ char *up, *down, *left, *right, *nobutton, *upright, *updown, *upleft, *rightleft, *downright, *downleft, *a, *w, *s, *d, *enter, *space, *one, *two, *wa,
+ *wd, *sa, *sd, *ws, *ad, *onetwo, *upspace, *rightspace, *downspace, *leftspace, *upenter, *downenter, *rightenter, *leftenter;
up = strstr(b, "K 0xFFE"); // 1
down = strstr(b, "K 0xFFD"); // 2
left = strstr(b, "K 0xFFB"); // 3
@@ -53,288 +311,139 @@
downright = strstr(b, "K 0xFF5"); // 8
downleft = strstr(b, "K 0xFF9"); // 9
rightleft = strstr(b, "K 0xFF3"); //10
- nobutton = strstr(b, "K 0xFFF"); //16
+ w = strstr(b, "K 0xEFF"); //11
+ s = strstr(b, "K 0xBFF"); //12
+ a = strstr(b, "K 0xDFF"); //13
+ d = strstr(b, "K 0x7FF"); //14
+ space = strstr(b, "K 0xFDF"); //15
+ enter = strstr(b, "K 0xFEF"); //16
+ one = strstr(b, "K 0xFBF"); //17
+ two = strstr(b, "K 0xF7F"); //18
+ wa = strstr(b, "K 0xCFF"); //19
+ wd = strstr(b, "K 0x6FF"); //20
+ sa = strstr(b, "K 0x9FF"); //21
+ sd = strstr(b, "K 0x3FF"); //22
+ ws = strstr(b, "K 0xAFF"); //23
+ ad = strstr(b, "K 0x5FF"); //24
+ onetwo = strstr(b, "K 0xF3F"); //25
+ upspace = strstr(b, "K 0xFDE"); //26
+ rightspace = strstr(b, "K 0xFD7"); //27
+ leftspace = strstr(b, "K 0xFDB"); //28
+ downspace = strstr(b, "K 0xFDD"); //29
+ upenter = strstr(b, "K 0xFEE"); //30
+ downenter = strstr(b, "K 0xFED"); //31
+ rightenter = strstr(b, "K 0xFE7"); //32
+ leftenter = strstr(b, "K 0xFEB"); //33
- if (strcmp(up, "K 0xFFE") == 0) {
- subtractor = 0;
- if (twobuttons) {
- t2.stop();
- twobuttons = 0;
- times2[j] = t2.read_ms();
- subtractor = times2[j];
- pc.printf("\n\r Time stored in array: %d \n", times2[j]);
- j++;
- }
- onebutton = 1;
- t2.reset();
- t2.start();
- moves[i] = 1;
- pc.printf("\n\r Move: Up");
- pc.printf("\n\r Position: %d", i);
- t.stop();
- times[i] = t.read_ms()-subtractor;
- pc.printf("\n\r Gap Time: %d", times[i]);
- t.reset();
- i++;
- }
- if (strcmp(down, "K 0xFFD") == 0) {
- subtractor = 0;
- if (twobuttons) {
- t2.stop();
- twobuttons = 0;
- times2[j] = t2.read_ms();
- subtractor = times2[j];
- pc.printf("\n\r Time stored in array: %d \n", times2[j]);
- j++;
- }
- onebutton = 1;
- t2.reset();
- t2.start();
- moves[i] = 2;
- pc.printf("\n\r Move: Down");
- pc.printf("\n\r Position: %d", i);
-
- t.stop();
- times[i] = t.read_ms()-subtractor;
- pc.printf("\n\r Gap Time: %d", times[i]);
- t.reset();
- i++;
- }
-
- if (strcmp(left, "K 0xFFB") == 0) {
- subtractor = 0;
+ nobutton = strstr(b, "K 0xFFF"); //
- if (twobuttons) {
- t2.stop();
- twobuttons = 0;
- times2[j] = t2.read_ms();
- subtractor = times2[j];
- pc.printf("\n\r Time stored in array: %d \n", times2[j]);
- j++;
- }
- onebutton = 1;
- t2.reset();
- t2.start();
- moves[i] = 3;
- pc.printf("\n\r Move: Left");
- pc.printf("\n\r Position: %d", i);
-
- t.stop();
- times[i] = t.read_ms()-subtractor;
- pc.printf("\n\r Gap Time: %d", times[i]);
- t.reset();
- i++;
+ if (strcmp(up, "K 0xFFE") == 0) { // 1
+ OneButton(1);
+ }
+ if (strcmp(down, "K 0xFFD") == 0) { // 2
+ OneButton(2);
+ }
+ if (strcmp(left, "K 0xFFB") == 0) { // 3
+ OneButton(3);
+ }
+ if (strcmp(right, "K 0xFF7") == 0) { // 4
+ OneButton(4);
+ }
+ if (strcmp(upright, "K 0xFF6") == 0) { // 5
+ TwoButtons(5);
+ }
+ if (strcmp(updown, "K 0xFFC") == 0) { // 6
+ TwoButtons(6);
}
- if (strcmp(right, "K 0xFF7") == 0) {
- subtractor = 0;
- if (twobuttons) {
- t2.stop();
- twobuttons = 0;
- times2[j] = t2.read_ms();
- subtractor = times2[j];
- pc.printf("\n\r Time stored in array: %d \n", times2[j]);
- j++;
- }
- onebutton = 1;
- t2.reset();
- t2.start();
- moves[i] = 4;
- pc.printf("\n\r Move: Right");
- pc.printf("\n\r Position: %d", i);
-
- t.stop();
- times[i] = t.read_ms()-subtractor;
- pc.printf("\n\r Gap Time: %d", times[i]);
- t.reset();
- i++;
+ if (strcmp(upleft, "K 0xFFA") == 0) { // 7
+ TwoButtons(7);
+ }
+ if (strcmp(downright, "K 0xFF5") == 0) { // 8
+ TwoButtons(8);
+ }
+ if (strcmp(downleft, "K 0xFF9") == 0) { // 9
+ TwoButtons(9);
}
- if (strcmp(upright, "K 0xFF6") == 0) {
- t2.stop();
- if(t2.read_ms()>0) {
- times2[j] = t2.read_ms();
- pc.printf("\n\r Press Time: %d", times2[j]);
- pc.printf("\n");
- }
- t2.reset();
- j++;
-
- if(onebutton == 0) {
- twobuttons = 1;
- t2.start();
- moves[i] = 5;
- pc.printf("\n\r Move: Up + Right Instant");
- pc.printf("\n\r Position: %d", i);
- i++;
- }
- else {
- onebutton = 0;
- twobuttons = 1;
- t2.start();
- moves[i] = 5;
- pc.printf("\n\r Move: Up + Right");
- pc.printf("\n\r Position: %d", i);
- i++;
- }
+ if (strcmp(rightleft, "K 0xFF3") == 0) { //10
+ TwoButtons(10);
+ }
+ if (strcmp(w, "K 0xEFF") == 0) { // 11
+ OneButton(11);
+ }
+ if (strcmp(s, "K 0xBFF") == 0) { // 12
+ OneButton(12);
}
- if (strcmp(updown, "K 0xFFC") == 0) {
- t2.stop();
- if(t2.read_ms()>0) {
- times2[j] = t2.read_ms();
- pc.printf("\n\r Press Time: %d", times2[j]);
- pc.printf("\n");
- }
- t2.reset();
- j++;
-
- if(onebutton == 0) {
- twobuttons = 1;
- t2.start();
- moves[i] = 6;
- pc.printf("\n\r Move: Up + Down Instant");
- pc.printf("\n\r Position: %d", i);
- i++;
- }
- else {
-
- onebutton = 0;
- twobuttons = 1;
- t2.start();
- moves[i] = 6;
- pc.printf("\n\r Move: Up + Down");
- pc.printf("\n\r Position: %d", i);
- i++;
- }
+ if (strcmp(a, "K 0xDFF") == 0) { // 13
+ OneButton(13);
+ }
+ if (strcmp(d, "K 0x7FF") == 0) { // 14
+ OneButton(14);
+ }
+ if (strcmp(space, "K 0xFDF") == 0) { // 15
+ OneButton(15);
+ }
+ if (strcmp(enter, "K 0xFEF") == 0) { // 16
+ OneButton(16);
+ }
+ if (strcmp(one, "K 0xFBF") == 0) { // 17
+ OneButton(17);
}
- if (strcmp(upleft, "K 0xFFA") == 0) {
- t2.stop();
- if(t2.read_ms()>0) {
- times2[j] = t2.read_ms();
- pc.printf("\n\r Press Time: %d", times2[j]);
- pc.printf("\n");
- }
- t2.reset();
- j++;
-
- if(onebutton == 0) {
- twobuttons = 1;
- t2.start();
- moves[i] = 7;
- pc.printf("\n\r Move: Up + Left Instant");
- pc.printf("\n\r Position: %d", i);
- i++;
- }
- else {
- onebutton = 0;
- twobuttons = 1;
- t2.start();
- moves[i] = 7;
- pc.printf("\n\r Move: Up + Left");
- pc.printf("\n\r Position: %d", i);
- i++;
- }
+ if (strcmp(two, "K 0xF7F") == 0) { // 18
+ OneButton(18);
+ }
+ if (strcmp(wa, "K 0xCFF") == 0) { // 19
+ TwoButtons(19);
+ }
+ if (strcmp(wd, "K 0x6FF") == 0) { // 20
+ TwoButtons(20);
+ }
+ if (strcmp(sa, "K 0x9FF") == 0) { // 21
+ TwoButtons(21);
+ }
+ if (strcmp(sd, "K 0x3FF") == 0) { // 22
+ TwoButtons(22);
}
-
- if (strcmp(downright, "K 0xFF5") == 0) {
- t2.stop();
- times2[j] = t2.read_ms();
- pc.printf("\n\r Press Time: %d", times2[j]);
- pc.printf("\n");
- t2.reset();
- j++;
-
- if(onebutton == 0) {
- twobuttons = 1;
- t2.start();
- moves[i] = 8;
- pc.printf("\n\r Move: Down + Right Instant");
- pc.printf("\n\r Position: %d", i);
- i++;
- }
- else {
-
- onebutton = 0;
- twobuttons = 1;
- t2.start();
- moves[i] = 8;
- pc.printf("\n\r Move: Down + Right");
- pc.printf("\n\r Position: %d", i);
- i++;
- }
+ if (strcmp(ws, "K 0xAFF") == 0) { // 23
+ TwoButtons(23);
+ }
+ if (strcmp(ad, "K 0x5FF") == 0) { // 24
+ TwoButtons(24);
+ }
+ if (strcmp(onetwo, "K 0xF3F") == 0) { // 25
+ TwoButtons(25);
+ }
+ if (strcmp(upspace, "K 0xFDE") == 0) { // 26
+ TwoButtons(26);
+ }
+ if (strcmp(rightspace, "K 0xFD7") == 0) { // 27
+ TwoButtons(27);
}
-
- if (strcmp(downleft, "K 0xFF9") == 0) {
- t2.stop();
- times2[j] = t2.read_ms();
- pc.printf("\n\r Press Time: %d", times2[j]);
- pc.printf("\n");
- t2.reset();
- j++;
-
- if(onebutton == 0) {
- twobuttons = 1;
- t2.start();
- moves[i] = 9;
- pc.printf("\n\r Move: Down + Left Instant");
- pc.printf("\n\r Position: %d", i);
- i++;
- }
- else {
- onebutton = 0;
- twobuttons = 1;
- t2.start();
- moves[i] = 9;
- pc.printf("\n\r Move: Down + Left");
- pc.printf("\n\r Position: %d", i);
- i++;
- }
+ if (strcmp(leftspace, "K 0xFDB") == 0) { // 28
+ TwoButtons(28);
+ }
+ if (strcmp(downspace, "K 0xFDD") == 0) { //29
+ TwoButtons(29);
+ }
+ if (strcmp(upenter, "K 0xFEE") == 0) { // 30
+ TwoButtons(30);
}
-
- if (strcmp(rightleft, "K 0xFF3") == 0) {
- t2.stop();
- times2[j] = t2.read_ms();
- pc.printf("\n\r Press Time: %d", times2[j]);
- pc.printf("\n");
- t2.reset();
- j++;
- if(onebutton == 0) {
- twobuttons = 1;
- t2.start();
- moves[i] = 10;
- pc.printf("\n\r Move: Left + Right Instant");
- pc.printf("\n\r Position: %d", i);
- i++;
- }
- else {
-
- onebutton = 0;
- twobuttons = 1;
- t2.start();
- moves[i] = 10;
- pc.printf("\n\r Move: Right + Left");
- pc.printf("\n\r Position: %d", i);
- i++;
- }
+ if (strcmp(downenter, "K 0xFED") == 0) { // 31
+ TwoButtons(31);
+ }
+ if (strcmp(rightenter, "K 0xFE7") == 0) { // 32
+ TwoButtons(32);
+ }
+ if (strcmp(leftenter, "K 0xFEB") == 0) { // 33
+ TwoButtons(33);
}
if (strcmp(nobutton, "K 0xFFF") == 0) {
-
- if(onebutton){
+ if(onebutton) {
onebutton = 0;
- t2.stop();
- if(t2.read_ms()>0) {
- times2[j] = t2.read_ms();
- pc.printf("\n\r Press Time: %d", times2[j]);
- pc.printf("\n");
- t2.reset();
- j++;
- }
+ t2_stop();
}
if (twobuttons) {
- twobuttons = 0;
- t2.stop();
- times2[j] = t2.read_ms();
- pc.printf("\n\r Time stored in array: %d \n", times2[j]);
- t2.reset();
- j++;
+ twobutton_handler();
+ t2.reset();
}
}
}
@@ -344,78 +453,54 @@
t.stop();
t.reset();
pc.printf("\n\r PLAY \n");
- /* for (int k = 0; k < j; k++) {
- pc.printf("\n\r Time %d", k);
- pc.printf(" %d", times2[k]);
- } */
- for (int k = 0; k < j; k++) {
+ for (k = 0; k < j; k++) { //Eliminate 0s presses
if (times2[k] == 0) {
for (int z = k; z < j; z++) {
- times2[z] = times2[z+1];
+ times2[z] = times2[z+1];
}
j--;
- }
}
-
- for(int k = 0; k < i; k++) {
+ }
+ for(k = 0; k < i; k++) {
wait_ms(times[k]);
+ pc.printf("\n\r Position: %d", k);
pc.printf("\n\r Wait Time: %d",times[k]);
switch (moves[k]) {
case 1:
t3.start();
pc.printf("\n\r Move: Up");
- pc.printf("\n\r Position: %d", k);
while(t3.read_ms() < times2[k]) {
upswitch = 0;
}
upswitch = 1;
- t3.stop();
- reader = t3.read_ms();
- pc.printf("\n\r Time Taken %d", reader);
- pc.printf("\n");
- t3.reset();
+ t3_stop();
break;
case 2:
pc.printf("\n\r Move: Down");
- pc.printf("\n\r Position: %d", k);
t3.start();
while(t3.read_ms() < times2[k]) {
downswitch = 0;
}
downswitch = 1;
- t3.stop();
- reader = t3.read_ms();
- pc.printf("\n\r Time Taken %d", reader);
- pc.printf("\n");
- t3.reset();
+ t3_stop();
break;
case 3:
pc.printf("\n\r Move: Left");
- pc.printf("\n\r Position: %d", k);
t3.start();
while(t3.read_ms() < times2[k]) {
leftswitch = 0;
}
leftswitch = 1;
- t3.stop();
- reader = t3.read_ms();
- pc.printf("\n\r Time Taken %d", reader);
- pc.printf("\n");
- t3.reset();
+ t3_stop();
break;
case 4:
pc.printf("\n\r Move: Right");
- pc.printf("\n\r Position: %d", k);
t3.start();
while(t3.read_ms() < times2[k]) {
rightswitch = 0;
}
rightswitch = 1;
- t3.stop();
- reader = t3.read_ms();
- pc.printf("\n\r Time Taken %d", reader);
- pc.printf("\n");
- t3.reset();
+ t3_stop();
break;
case 5:
pc.printf("\n\r Move: Up + Right");
@@ -427,16 +512,10 @@
}
upswitch = 1;
rightswitch = 1;
- t3.stop();
- reader = t3.read_ms();
- pc.printf("\n\r Time Taken %d", reader);
- pc.printf("\n");
- t3.reset();
- y++;
+ t3_stop();
break;
case 6:
pc.printf("\n\r Move: Up + Down");
- pc.printf("\n\r Position: %d", k);
t3.start();
while(t3.read_ms() < times2[k]) {
upswitch = 0;
@@ -444,16 +523,10 @@
}
upswitch = 1;
downswitch = 1;
- t3.stop();
- reader = t3.read_ms();
- pc.printf("\n\r Time Taken %d", reader);
- pc.printf("\n");
- t3.reset();
- y++;
+ t3_stop();
break;
case 7:
pc.printf("\n\r Move: Up + Left");
- pc.printf("\n\r Position: %d", k);
t3.start();
while(t3.read_ms() < times2[k]) {
upswitch = 0;
@@ -461,16 +534,10 @@
}
upswitch = 1;
leftswitch = 1;
- t3.stop();
- reader = t3.read_ms();
- pc.printf("\n\r Time Taken %d", reader);
- pc.printf("\n");
- t3.reset();
- y++;
+ t3_stop();
break;
case 8:
pc.printf("\n\r Move: Down + Right");
- pc.printf("\n\r Position: %d", k);
t3.start();
while(t3.read_ms() < times2[k]) {
downswitch = 0;
@@ -478,16 +545,10 @@
}
downswitch = 1;
rightswitch = 1;
- t3.stop();
- reader = t3.read_ms();
- pc.printf("\n\r Time Taken %d", reader);
- pc.printf("\n");
- t3.reset();
- y++;
+ t3_stop();
break;
case 9:
pc.printf("\n\r Move: Down + Left");
- pc.printf("\n\r Position: %d", k);
t3.start();
while(t3.read_ms() < times2[k]) {
downswitch = 0;
@@ -495,16 +556,10 @@
}
downswitch = 1;
leftswitch = 1;
- t3.stop();
- reader = t3.read_ms();
- pc.printf("\n\r Time Taken %d", reader);
- pc.printf("\n");
- t3.reset();
- y++;
+ t3_stop();
break;
case 10:
pc.printf("\n\r Move: Right + Left");
- pc.printf("\n\r Position: %d", k);
t3.start();
while(t3.read_ms() < times2[k]) {
rightswitch = 0;
@@ -512,14 +567,269 @@
}
rightswitch = 1;
leftswitch = 1;
- t3.stop();
- reader = t3.read_ms();
- pc.printf("\n\r Time Taken %d", reader);
- pc.printf("\n");
- t3.reset();
- y++;
+ t3_stop();
+ break;
+
+ case 11:
+ pc.printf("\n\r Move: w");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ wswitch = 0;
+ }
+ wswitch = 1;
+ t3_stop();
+ break;
+
+ case 12:
+ pc.printf("\n\r Move: s");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ sswitch = 0;
+ }
+ sswitch = 1;
+ t3_stop();
+ break;
+
+ case 13:
+ pc.printf("\n\r Move: a");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ aswitch = 0;
+ }
+ aswitch = 1;
+ t3_stop();
+ break;
+
+ case 14:
+ pc.printf("\n\r Move: d");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ dswitch = 0;
+ }
+ dswitch = 1;
+ t3_stop();
+ break;
+
+ case 15:
+ pc.printf("\n\r Move: Space");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ spaceswitch = 0;
+ }
+ spaceswitch = 1;
+ t3_stop();
+ break;
+
+ case 16:
+ pc.printf("\n\r Move: Enter");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ enterswitch = 0;
+ }
+ enterswitch = 1;
+ t3_stop();
+ break;
+
+ case 17:
+ pc.printf("\n\r Move: 1");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ oneswitch = 0;
+ }
+ oneswitch = 1;
+ t3_stop();
+ break;
+
+ case 18:
+ pc.printf("\n\r Move: 2");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ twoswitch = 0;
+ }
+ twoswitch = 1;
+ t3_stop();
+ break;
+
+ case 19:
+ pc.printf("\n\r Move: w + a");
+ pc.printf("\n\r Position: %d", k);
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ wswitch = 0;
+ aswitch = 0;
+ }
+ wswitch = 1;
+ aswitch = 1;
+ t3_stop();
+ break;
+
+ case 20:
+ pc.printf("\n\r Move: w + d");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ wswitch = 0;
+ dswitch = 0;
+ }
+ wswitch = 1;
+ dswitch = 1;
+ t3_stop();
+ break;
+
+ case 21:
+ pc.printf("\n\r Move: s + a");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ sswitch = 0;
+ aswitch = 0;
+ }
+ sswitch = 1;
+ aswitch = 1;
+ t3_stop();
+ break;
+
+ case 22:
+ pc.printf("\n\r Move: s + d");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ sswitch = 0;
+ dswitch = 0;
+ }
+ sswitch = 1;
+ dswitch = 1;
+ t3_stop();
break;
+ case 23:
+ pc.printf("\n\r Move: w + s");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ wswitch = 0;
+ sswitch = 0;
+ }
+ wswitch = 1;
+ sswitch = 1;
+ t3_stop();
+ break;
+
+ case 24:
+ pc.printf("\n\r Move: a + d");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ aswitch = 0;
+ dswitch = 0;
+ }
+ aswitch = 1;
+ dswitch = 1;
+ t3_stop();
+ break;
+
+ case 25:
+ pc.printf("\n\r Move: one + two");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ oneswitch = 0;
+ twoswitch = 0;
+ }
+ oneswitch = 1;
+ twoswitch = 1;
+ t3_stop();
+ break;
+
+ case 26:
+ pc.printf("\n\r Move: Up + Space");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ upswitch = 0;
+ spaceswitch = 0;
+ }
+ upswitch = 1;
+ spaceswitch = 1;
+ t3_stop();
+ break;
+
+ case 27:
+ pc.printf("\n\r Move: Right + Space");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ rightswitch = 0;
+ spaceswitch = 0;
+ }
+ rightswitch = 1;
+ spaceswitch = 1;
+ t3_stop();
+ break;
+
+ case 28:
+ pc.printf("\n\r Move: Space + Left");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ spaceswitch = 0;
+ leftswitch = 0;
+ }
+ spaceswitch = 1;
+ leftswitch = 1;
+ t3_stop();
+ break;
+
+ case 29:
+ pc.printf("\n\r Move: Down + Space");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ downswitch = 0;
+ spaceswitch = 0;
+ }
+ downswitch = 1;
+ spaceswitch = 1;
+ t3_stop();
+ break;
+
+ case 30:
+ pc.printf("\n\r Move: Up + Enter");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ upswitch = 0;
+ enterswitch = 0;
+ }
+ upswitch = 1;
+ enterswitch = 1;
+ t3_stop();
+ break;
+
+ case 31:
+ pc.printf("\n\r Move: Down + Enter");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ downswitch = 0;
+ enterswitch = 0;
+ }
+ rightswitch = 1;
+ leftswitch = 1;
+ t3_stop();
+ break;
+
+ case 32:
+ pc.printf("\n\r Move: Right + Enter");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ rightswitch = 0;
+ enterswitch = 0;
+ }
+ rightswitch = 1;
+ enterswitch = 1;
+ t3_stop();
+ break;
+
+ case 33:
+ pc.printf("\n\r Move: Enter + Left");
+ t3.start();
+ while(t3.read_ms() < times2[k]) {
+ enterswitch = 0;
+ leftswitch = 0;
+ }
+ rightswitch = 1;
+ enterswitch = 1;
+ t3_stop();
+ break;
default:
break;
}
@@ -529,11 +839,8 @@
int main()
{
- pc.printf("\n\r START");
- pc.printf("\n");
- //bluefruit.gets("K 0xFFF", 9);
+ pc.printf("\n\r START \n");
while(1) {
-
upswitch = 1;
downswitch = 1;
leftswitch = 1;
@@ -547,13 +854,14 @@
oneswitch = 1;
twoswitch = 1;
if(twobuttons == 0) {
- t.start();
+ t.start();
}
playI.rise(&playfunction);
if (bluefruit.readable()) {
bluefruit.gets(buf, 9);
- //pc.puts(buf);
+ // pc.puts(buf);
comparison(buf);
+
}
}
}
\ No newline at end of file