Demo Team / Mbed 2 deprecated bluefruit

Dependencies:   mbed

Committer:
ShalajLawania
Date:
Mon Apr 13 08:31:37 2015 +0000
Revision:
5:9af1305f7779
With save feature

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ShalajLawania 5:9af1305f7779 1 /**************************************
ShalajLawania 5:9af1305f7779 2 * Bluetooth Controller single key press library
ShalajLawania 5:9af1305f7779 3 * Author: Shalaj Lawania.
ShalajLawania 5:9af1305f7779 4 **************************************/
ShalajLawania 5:9af1305f7779 5
ShalajLawania 5:9af1305f7779 6 #include "mbed.h"
ShalajLawania 5:9af1305f7779 7 #include "Timers.h"
ShalajLawania 5:9af1305f7779 8
ShalajLawania 5:9af1305f7779 9 /*************************************************
ShalajLawania 5:9af1305f7779 10 * Bluefruit E-Z keys assigned to LPC1786 GPIO pins
ShalajLawania 5:9af1305f7779 11 **************************************************/
ShalajLawania 5:9af1305f7779 12
ShalajLawania 5:9af1305f7779 13 DigitalOut up_key (p30);
ShalajLawania 5:9af1305f7779 14 DigitalOut down_key (p29);
ShalajLawania 5:9af1305f7779 15 DigitalOut right_key (p28);
ShalajLawania 5:9af1305f7779 16 DigitalOut left_key (p27);
ShalajLawania 5:9af1305f7779 17 DigitalOut enter_key(p5);
ShalajLawania 5:9af1305f7779 18 DigitalOut space_key(p6);
ShalajLawania 5:9af1305f7779 19 DigitalOut W_key(p22);
ShalajLawania 5:9af1305f7779 20 DigitalOut S_key(p11);
ShalajLawania 5:9af1305f7779 21 DigitalOut A_key(p23);
ShalajLawania 5:9af1305f7779 22 DigitalOut D_key(p8);
ShalajLawania 5:9af1305f7779 23 DigitalOut one_key(p13);
ShalajLawania 5:9af1305f7779 24 DigitalOut two_key(p14 );
ShalajLawania 5:9af1305f7779 25
ShalajLawania 5:9af1305f7779 26 Serial bluefruit(p9, p10);
ShalajLawania 5:9af1305f7779 27 InterruptIn playI(p25);
ShalajLawania 5:9af1305f7779 28
ShalajLawania 5:9af1305f7779 29 /************************************************************************
ShalajLawania 5:9af1305f7779 30 * move_type array: Stores a unique id for each move, i.e 1 for Up, 2 for Down
ShalajLawania 5:9af1305f7779 31 ************************************************************************/
ShalajLawania 5:9af1305f7779 32
ShalajLawania 5:9af1305f7779 33 char move_type[400]; //change index to increase recorded moves
ShalajLawania 5:9af1305f7779 34
ShalajLawania 5:9af1305f7779 35 char key_ID [9];
ShalajLawania 5:9af1305f7779 36 unsigned int i, k, z = 0;
ShalajLawania 5:9af1305f7779 37 unsigned int one_pressed, two_pressed = 0;
ShalajLawania 5:9af1305f7779 38 unsigned int subtractor;
ShalajLawania 5:9af1305f7779 39
ShalajLawania 5:9af1305f7779 40 void display_move(int b, int c);
ShalajLawania 5:9af1305f7779 41 void play_time_stop();
ShalajLawania 5:9af1305f7779 42 void press_time_stop();
ShalajLawania 5:9af1305f7779 43 void two_button_controller();
ShalajLawania 5:9af1305f7779 44 void one_button_controller(char m);
ShalajLawania 5:9af1305f7779 45
ShalajLawania 5:9af1305f7779 46 /*************************************************
ShalajLawania 5:9af1305f7779 47 * setup() switches all play keys to off initially
ShalajLawania 5:9af1305f7779 48 *************************************************/
ShalajLawania 5:9af1305f7779 49
ShalajLawania 5:9af1305f7779 50 void setup()
ShalajLawania 5:9af1305f7779 51 {
ShalajLawania 5:9af1305f7779 52 up_key = 1; down_key = 1; left_key = 1; right_key = 1; W_key = 1; S_key = 1; A_key = 1; D_key = 1; enter_key = 1; space_key = 1; one_key = 1; two_key = 1;
ShalajLawania 5:9af1305f7779 53 }
ShalajLawania 5:9af1305f7779 54
ShalajLawania 5:9af1305f7779 55 /***********************************************************
ShalajLawania 5:9af1305f7779 56 * Overloaded setup() switches all the keys off
ShalajLawania 5:9af1305f7779 57 * except the ones involved in the move z references
ShalajLawania 5:9af1305f7779 58 * Used to provide continuous playback for double key presses
ShalajLawania 5:9af1305f7779 59 ***********************************************************/
ShalajLawania 5:9af1305f7779 60
ShalajLawania 5:9af1305f7779 61 void setup(char z)
ShalajLawania 5:9af1305f7779 62 {
ShalajLawania 5:9af1305f7779 63 //if (z != 1 || z != 5 || z != 6 || z != 7 || z != 26 || z != 30 || z != 34 || z != 44) {
ShalajLawania 5:9af1305f7779 64 up_key = 1;
ShalajLawania 5:9af1305f7779 65 //}
ShalajLawania 5:9af1305f7779 66 //if (z != 2 || z != 6 || z != 8 || z != 9 || z != 29 || z != 31 || z != 35 || z != 45) {
ShalajLawania 5:9af1305f7779 67 down_key = 1;
ShalajLawania 5:9af1305f7779 68 //}
ShalajLawania 5:9af1305f7779 69 //if (z != 3 || z != 7 || z != 9 || z != 10 || z != 28 || z != 33 || z != 36 || z != 47) {
ShalajLawania 5:9af1305f7779 70 left_key = 1;
ShalajLawania 5:9af1305f7779 71 //}
ShalajLawania 5:9af1305f7779 72 //if (z != 4 || z != 5 || z != 8 || z != 10 || z != 27 || z != 32 || z != 37 || z != 46) {
ShalajLawania 5:9af1305f7779 73 right_key = 1;
ShalajLawania 5:9af1305f7779 74 //}
ShalajLawania 5:9af1305f7779 75 //if (z != 11 || z != 19 || z != 20 || z != 23 || z != 38 || z != 48) {
ShalajLawania 5:9af1305f7779 76 W_key = 1;
ShalajLawania 5:9af1305f7779 77 //}
ShalajLawania 5:9af1305f7779 78 //if (z != 12 || z != 21 || z != 22 || z != 23 || z != 39 || z != 49) {
ShalajLawania 5:9af1305f7779 79 S_key = 1;
ShalajLawania 5:9af1305f7779 80 //}
ShalajLawania 5:9af1305f7779 81 //if (z != 13 || z != 19 || z != 21 || z != 24 || z != 40 || z != 50) {
ShalajLawania 5:9af1305f7779 82 A_key = 1;
ShalajLawania 5:9af1305f7779 83 //}
ShalajLawania 5:9af1305f7779 84 //if (z != 14 || z != 20 || z != 22 || z != 24 || z != 41 || z != 51) {
ShalajLawania 5:9af1305f7779 85 D_key = 1;
ShalajLawania 5:9af1305f7779 86 //}
ShalajLawania 5:9af1305f7779 87 //if (z != 16 || z != 30 || z != 31 || z != 32 || z != 33 || z != 43 || z != 52) {
ShalajLawania 5:9af1305f7779 88 enter_key = 1;
ShalajLawania 5:9af1305f7779 89 //}
ShalajLawania 5:9af1305f7779 90 //if (z != 15 || z != 26 || z != 27 || z != 28 || z != 29 || z != 42 || z != 53) {
ShalajLawania 5:9af1305f7779 91 space_key = 1;
ShalajLawania 5:9af1305f7779 92 //}
ShalajLawania 5:9af1305f7779 93 //if (z != 17 || z != 25 || z != 34 || z != 35 || z != 36 || z != 37 || z != 38 || z != 39 || z != 40 || z != 41 || z != 42 || z != 43) {
ShalajLawania 5:9af1305f7779 94 one_key = 1;
ShalajLawania 5:9af1305f7779 95 //}
ShalajLawania 5:9af1305f7779 96 //if (z != 18 || z != 25 || z != 44 || z != 45 || z != 46 || z != 47 || z != 48 || z != 49 || z != 50 || z != 51 || z != 52 || z != 53) {
ShalajLawania 5:9af1305f7779 97 two_key = 1;
ShalajLawania 5:9af1305f7779 98 //}
ShalajLawania 5:9af1305f7779 99 }
ShalajLawania 5:9af1305f7779 100
ShalajLawania 5:9af1305f7779 101 /***********************************************************************
ShalajLawania 5:9af1305f7779 102 * one_button(): If just one button is pressed call one_button_controller
ShalajLawania 5:9af1305f7779 103 * call two_button_controller if more than one is pressed
ShalajLawania 5:9af1305f7779 104 ***********************************************************************/
ShalajLawania 5:9af1305f7779 105
ShalajLawania 5:9af1305f7779 106 void one_button(char q)
ShalajLawania 5:9af1305f7779 107 {
ShalajLawania 5:9af1305f7779 108 if (two_pressed) {
ShalajLawania 5:9af1305f7779 109 two_button_controller();
ShalajLawania 5:9af1305f7779 110 }
ShalajLawania 5:9af1305f7779 111 one_button_controller(q);
ShalajLawania 5:9af1305f7779 112 }
ShalajLawania 5:9af1305f7779 113
ShalajLawania 5:9af1305f7779 114 /*************************************************************
ShalajLawania 5:9af1305f7779 115 * one_button_controller(): Sets one_pressed, resets press_time
ShalajLawania 5:9af1305f7779 116 * saves the move into move_type array
ShalajLawania 5:9af1305f7779 117 * stops, saves and resets wait_time
ShalajLawania 5:9af1305f7779 118 *************************************************************/
ShalajLawania 5:9af1305f7779 119
ShalajLawania 5:9af1305f7779 120 void one_button_controller(char m)
ShalajLawania 5:9af1305f7779 121 {
ShalajLawania 5:9af1305f7779 122 one_pressed = 1;
ShalajLawania 5:9af1305f7779 123 press_time.reset(); press_time.start();
ShalajLawania 5:9af1305f7779 124 move_type[i] = m;
ShalajLawania 5:9af1305f7779 125 display_move(m, i);
ShalajLawania 5:9af1305f7779 126 wait_time.stop();
ShalajLawania 5:9af1305f7779 127 if (subtractor > 0) {
ShalajLawania 5:9af1305f7779 128 wait_times[i] = 0;
ShalajLawania 5:9af1305f7779 129 } else {
ShalajLawania 5:9af1305f7779 130 wait_times[i] = wait_time.read_ms();
ShalajLawania 5:9af1305f7779 131 }
ShalajLawania 5:9af1305f7779 132 pc.printf("\n\r Gap Time: %d", wait_times[i]);
ShalajLawania 5:9af1305f7779 133 wait_time.reset();
ShalajLawania 5:9af1305f7779 134 i++; subtractor = 0;
ShalajLawania 5:9af1305f7779 135 }