
My ELEC2645 Project Zhou Jingyuan 200986046
Dependencies: ZhouJingyuan mbed
main.cpp@0:c5868f162227, 2016-05-05 (annotated)
- Committer:
- Iverson66
- Date:
- Thu May 05 12:39:59 2016 +0000
- Revision:
- 0:c5868f162227
Zhou JIngyuan 200986046
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Iverson66 | 0:c5868f162227 | 1 | #include "main.h" //headfile |
Iverson66 | 0:c5868f162227 | 2 | |
Iverson66 | 0:c5868f162227 | 3 | |
Iverson66 | 0:c5868f162227 | 4 | // VCC,SCE,RST,D/C,MOSI,SCLK,LED |
Iverson66 | 0:c5868f162227 | 5 | N5110 lcd (PTE26 , PTA0 , PTC4 , PTD0 , PTD2 , PTD1 , PTC3); // connected the LED to the K64F board |
Iverson66 | 0:c5868f162227 | 6 | DigitalIn button(PTB18); // pin of the button connection |
Iverson66 | 0:c5868f162227 | 7 | DigitalIn joystickbutton(PTB11); // pin of the joystickbutton connection |
Iverson66 | 0:c5868f162227 | 8 | AnalogIn xPot(PTB2); //pin of the joystick x point connection |
Iverson66 | 0:c5868f162227 | 9 | AnalogIn yPot(PTB3); //pin of the joystick y point connection |
Iverson66 | 0:c5868f162227 | 10 | |
Iverson66 | 0:c5868f162227 | 11 | // timer to regularly read the joystick |
Iverson66 | 0:c5868f162227 | 12 | Ticker pollJoystick; |
Iverson66 | 0:c5868f162227 | 13 | |
Iverson66 | 0:c5868f162227 | 14 | // Serial for debug |
Iverson66 | 0:c5868f162227 | 15 | Serial pc(USBTX,USBRX); |
Iverson66 | 0:c5868f162227 | 16 | // create enumerated type (0,1,2,3 etc. for direction) |
Iverson66 | 0:c5868f162227 | 17 | // could be extended for diagonals etc. |
Iverson66 | 0:c5868f162227 | 18 | enum DirectionName { |
Iverson66 | 0:c5868f162227 | 19 | UP, |
Iverson66 | 0:c5868f162227 | 20 | DOWN, |
Iverson66 | 0:c5868f162227 | 21 | LEFT, |
Iverson66 | 0:c5868f162227 | 22 | RIGHT, |
Iverson66 | 0:c5868f162227 | 23 | CENTRE, |
Iverson66 | 0:c5868f162227 | 24 | UNKNOWN |
Iverson66 | 0:c5868f162227 | 25 | }; |
Iverson66 | 0:c5868f162227 | 26 | // struct for Joystick |
Iverson66 | 0:c5868f162227 | 27 | typedef struct JoyStick Joystick; |
Iverson66 | 0:c5868f162227 | 28 | struct JoyStick { |
Iverson66 | 0:c5868f162227 | 29 | float x; // current x value |
Iverson66 | 0:c5868f162227 | 30 | float x0; // 'centred' x value |
Iverson66 | 0:c5868f162227 | 31 | float y; // current y value |
Iverson66 | 0:c5868f162227 | 32 | float y0; // 'centred' y value |
Iverson66 | 0:c5868f162227 | 33 | int button; // button state (assume pull-down used, so 1 = pressed, 0 = unpressed) |
Iverson66 | 0:c5868f162227 | 34 | DirectionName direction; // current direction |
Iverson66 | 0:c5868f162227 | 35 | }; |
Iverson66 | 0:c5868f162227 | 36 | // create struct variable |
Iverson66 | 0:c5868f162227 | 37 | Joystick joystick; |
Iverson66 | 0:c5868f162227 | 38 | |
Iverson66 | 0:c5868f162227 | 39 | int main() |
Iverson66 | 0:c5868f162227 | 40 | { |
Iverson66 | 0:c5868f162227 | 41 | button.mode(PullDown); //let the button pressed equal to one |
Iverson66 | 0:c5868f162227 | 42 | joystickbutton.mode(PullDown); //let the joystickbutton pressed equal to one |
Iverson66 | 0:c5868f162227 | 43 | lcd.init(); |
Iverson66 | 0:c5868f162227 | 44 | // these are default settings so not strictly needed |
Iverson66 | 0:c5868f162227 | 45 | lcd.normalMode(); // normal colour mode |
Iverson66 | 0:c5868f162227 | 46 | lcd.setBrightness(0.5); // put LED backlight on 50% |
Iverson66 | 0:c5868f162227 | 47 | lcd.printString("get the ball",0,0); //write the string on the screen |
Iverson66 | 0:c5868f162227 | 48 | lcd.refresh(); //Refresh display |
Iverson66 | 0:c5868f162227 | 49 | wait(1.0); //set the disappear time is 1s |
Iverson66 | 0:c5868f162227 | 50 | lcd.clear(); // clear display |
Iverson66 | 0:c5868f162227 | 51 | lcd.setBrightness(1.0); // put LED backlight on 50% |
Iverson66 | 0:c5868f162227 | 52 | illustration (); // function call |
Iverson66 | 0:c5868f162227 | 53 | int t=3; //initial constant to quit the loop |
Iverson66 | 0:c5868f162227 | 54 | do |
Iverson66 | 0:c5868f162227 | 55 | { |
Iverson66 | 0:c5868f162227 | 56 | lcd.drawRect(0,0,84,48,2); //draw rectangle picture |
Iverson66 | 0:c5868f162227 | 57 | lcd.drawRect(0,0,10,48,1); |
Iverson66 | 0:c5868f162227 | 58 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 59 | wait(0.5); //0.5s to disappear |
Iverson66 | 0:c5868f162227 | 60 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 61 | if(button) //check the button is pressed or not |
Iverson66 | 0:c5868f162227 | 62 | { |
Iverson66 | 0:c5868f162227 | 63 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 64 | lcd.printString("Skip",0,0); //write the string which will lose in 1s |
Iverson66 | 0:c5868f162227 | 65 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 66 | wait(1.0); |
Iverson66 | 0:c5868f162227 | 67 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 68 | break; //get out of the loop |
Iverson66 | 0:c5868f162227 | 69 | } |
Iverson66 | 0:c5868f162227 | 70 | moving (); //function call |
Iverson66 | 0:c5868f162227 | 71 | t--; //t=t-1 |
Iverson66 | 0:c5868f162227 | 72 | }while(t>=0); //when t=-1 jump outof the loop |
Iverson66 | 0:c5868f162227 | 73 | //write string lost in 1s |
Iverson66 | 0:c5868f162227 | 74 | lcd.printString("Warning:",0,0); |
Iverson66 | 0:c5868f162227 | 75 | lcd.printString("The practice",0,0); |
Iverson66 | 0:c5868f162227 | 76 | lcd.printString("is finished",0,2); |
Iverson66 | 0:c5868f162227 | 77 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 78 | wait(1.0); |
Iverson66 | 0:c5868f162227 | 79 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 80 | while (1) |
Iverson66 | 0:c5868f162227 | 81 | { |
Iverson66 | 0:c5868f162227 | 82 | srand(time(NULL)); //let the value achieved changes each time |
Iverson66 | 0:c5868f162227 | 83 | int u = rand()%(2-1+1)+1; //get random value between 1 and 2 |
Iverson66 | 0:c5868f162227 | 84 | //draw the picture disappears in 0.5s |
Iverson66 | 0:c5868f162227 | 85 | lcd.drawRect(0,0,84,48,2); |
Iverson66 | 0:c5868f162227 | 86 | lcd.drawRect(0,0,10,48,1); |
Iverson66 | 0:c5868f162227 | 87 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 88 | wait(0.5); |
Iverson66 | 0:c5868f162227 | 89 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 90 | moving2(); //function call |
Iverson66 | 0:c5868f162227 | 91 | if(r==0) //get global constant r |
Iverson66 | 0:c5868f162227 | 92 | { |
Iverson66 | 0:c5868f162227 | 93 | if (q>=10) //use the if statement to judge the statement |
Iverson66 | 0:c5868f162227 | 94 | { |
Iverson66 | 0:c5868f162227 | 95 | if(u==1) |
Iverson66 | 0:c5868f162227 | 96 | { |
Iverson66 | 0:c5868f162227 | 97 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 98 | lcd.printString("Hold joystick",0,2); |
Iverson66 | 0:c5868f162227 | 99 | wait(2.0); |
Iverson66 | 0:c5868f162227 | 100 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 101 | if (joystickbutton) // check the joystickbutton is pressed or not |
Iverson66 | 0:c5868f162227 | 102 | q=q-5; //if it is ture, the global constant will reduce five each time |
Iverson66 | 0:c5868f162227 | 103 | } |
Iverson66 | 0:c5868f162227 | 104 | } |
Iverson66 | 0:c5868f162227 | 105 | else if (q<10) //check the value of q |
Iverson66 | 0:c5868f162227 | 106 | { |
Iverson66 | 0:c5868f162227 | 107 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 108 | lcd.printString("Congratulation",0,2); //write string |
Iverson66 | 0:c5868f162227 | 109 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 110 | break; //jump out of the loop |
Iverson66 | 0:c5868f162227 | 111 | } |
Iverson66 | 0:c5868f162227 | 112 | } |
Iverson66 | 0:c5868f162227 | 113 | else |
Iverson66 | 0:c5868f162227 | 114 | { |
Iverson66 | 0:c5868f162227 | 115 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 116 | lcd.printString("lose the game",0,2); //write string |
Iverson66 | 0:c5868f162227 | 117 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 118 | break; //jump out of the loop |
Iverson66 | 0:c5868f162227 | 119 | } |
Iverson66 | 0:c5868f162227 | 120 | } |
Iverson66 | 0:c5868f162227 | 121 | } |
Iverson66 | 0:c5868f162227 | 122 | // the function to show the basic information of the game |
Iverson66 | 0:c5868f162227 | 123 | void illustration () |
Iverson66 | 0:c5868f162227 | 124 | { |
Iverson66 | 0:c5868f162227 | 125 | //show how to control the people |
Iverson66 | 0:c5868f162227 | 126 | lcd.printString("joystick to",0,0); |
Iverson66 | 0:c5868f162227 | 127 | lcd.printString("control people",0,1); |
Iverson66 | 0:c5868f162227 | 128 | //draw circle and draw line to built a people |
Iverson66 | 0:c5868f162227 | 129 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 130 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 131 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 132 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 133 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 134 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 135 | wait(3.0); |
Iverson66 | 0:c5868f162227 | 136 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 137 | //show the way to win |
Iverson66 | 0:c5868f162227 | 138 | lcd.printString("Use hand to",0,0); |
Iverson66 | 0:c5868f162227 | 139 | lcd.printString("get the ball",0,1); |
Iverson66 | 0:c5868f162227 | 140 | lcd.drawCircle(20,23,2,1); |
Iverson66 | 0:c5868f162227 | 141 | lcd.drawCircle(25,27,1,1); |
Iverson66 | 0:c5868f162227 | 142 | lcd.drawCircle(40,27,1,1); |
Iverson66 | 0:c5868f162227 | 143 | lcd.drawLine(20,25,20,30,1); |
Iverson66 | 0:c5868f162227 | 144 | lcd.drawLine(20,27,23,27,1); |
Iverson66 | 0:c5868f162227 | 145 | lcd.drawLine(20,30,18,32,1); |
Iverson66 | 0:c5868f162227 | 146 | lcd.drawLine(20,30,22,32,1); |
Iverson66 | 0:c5868f162227 | 147 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 148 | wait(3.0); |
Iverson66 | 0:c5868f162227 | 149 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 150 | //show the condition of the failure |
Iverson66 | 0:c5868f162227 | 151 | lcd.printString("if the ball",0,0); |
Iverson66 | 0:c5868f162227 | 152 | lcd.printString("touch the wall",0,1); |
Iverson66 | 0:c5868f162227 | 153 | lcd.printString("will lose",0,2); |
Iverson66 | 0:c5868f162227 | 154 | lcd.drawRect(0,30,10,20,1); |
Iverson66 | 0:c5868f162227 | 155 | lcd.drawCircle(15,40,1,1); |
Iverson66 | 0:c5868f162227 | 156 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 157 | wait(3.0); |
Iverson66 | 0:c5868f162227 | 158 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 159 | //get into the game |
Iverson66 | 0:c5868f162227 | 160 | lcd.printString("practice",0,0); |
Iverson66 | 0:c5868f162227 | 161 | lcd.printString("Hold button",0,1); |
Iverson66 | 0:c5868f162227 | 162 | lcd.printString("to skip",0,3); |
Iverson66 | 0:c5868f162227 | 163 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 164 | wait(2.0); |
Iverson66 | 0:c5868f162227 | 165 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 166 | } |
Iverson66 | 0:c5868f162227 | 167 | // use function to find the randon value of the ball x coordinate from 70 to 80 |
Iverson66 | 0:c5868f162227 | 168 | int setpointx (int x1) |
Iverson66 | 0:c5868f162227 | 169 | { |
Iverson66 | 0:c5868f162227 | 170 | srand(time(NULL)); |
Iverson66 | 0:c5868f162227 | 171 | x1 = rand()%(80-70+1)+70; |
Iverson66 | 0:c5868f162227 | 172 | return x1; //return an integer to transfer the value to the other function |
Iverson66 | 0:c5868f162227 | 173 | } |
Iverson66 | 0:c5868f162227 | 174 | // use function to find the randon value of the enemy y coordinate from 15 to 30 |
Iverson66 | 0:c5868f162227 | 175 | int setpointy (int y1) |
Iverson66 | 0:c5868f162227 | 176 | { |
Iverson66 | 0:c5868f162227 | 177 | srand(time(NULL)); |
Iverson66 | 0:c5868f162227 | 178 | y1 = rand()%(30-15+1)+15; |
Iverson66 | 0:c5868f162227 | 179 | return y1; //return an integer to transfer the value to the other function |
Iverson66 | 0:c5868f162227 | 180 | } |
Iverson66 | 0:c5868f162227 | 181 | |
Iverson66 | 0:c5868f162227 | 182 | void moving () |
Iverson66 | 0:c5868f162227 | 183 | { |
Iverson66 | 0:c5868f162227 | 184 | //get the value of the x coordinate and y coordinate of the ball point |
Iverson66 | 0:c5868f162227 | 185 | int a,b; |
Iverson66 | 0:c5868f162227 | 186 | int a1=setpointx(a); |
Iverson66 | 0:c5868f162227 | 187 | int b1=setpointy(b); |
Iverson66 | 0:c5868f162227 | 188 | calibrateJoystick(); // get centred values of joystick |
Iverson66 | 0:c5868f162227 | 189 | pollJoystick.attach(&updateJoystick,0.5); // read joystick 10 times per second |
Iverson66 | 0:c5868f162227 | 190 | while(1){ |
Iverson66 | 0:c5868f162227 | 191 | //draw picture |
Iverson66 | 0:c5868f162227 | 192 | lcd.drawRect(0,0,84,48,2); |
Iverson66 | 0:c5868f162227 | 193 | lcd.drawRect(0,0,10,48,1); |
Iverson66 | 0:c5868f162227 | 194 | lcd.drawCircle(a1,b1,1,1); |
Iverson66 | 0:c5868f162227 | 195 | if (printFlag) { // if flag set, clear flag and print joystick values to serial port |
Iverson66 | 0:c5868f162227 | 196 | printFlag = 0; |
Iverson66 | 0:c5868f162227 | 197 | pc.printf("x = %f y = %f button = %d ",joystick.x,joystick.y,joystick.button); |
Iverson66 | 0:c5868f162227 | 198 | // check joystick direction |
Iverson66 | 0:c5868f162227 | 199 | if (joystick.direction == UP) |
Iverson66 | 0:c5868f162227 | 200 | { |
Iverson66 | 0:c5868f162227 | 201 | if(y>10) //use the if statement to make the border of the people moving |
Iverson66 | 0:c5868f162227 | 202 | { |
Iverson66 | 0:c5868f162227 | 203 | //delete the old picture |
Iverson66 | 0:c5868f162227 | 204 | lcd.drawCircle(x,y,2,2); |
Iverson66 | 0:c5868f162227 | 205 | lcd.drawLine(x,y+2,x,y+7,2); |
Iverson66 | 0:c5868f162227 | 206 | lcd.drawLine(x,y+4,x+3,y+4,2); |
Iverson66 | 0:c5868f162227 | 207 | lcd.drawLine(x,y+7,x-2,y+9,2); |
Iverson66 | 0:c5868f162227 | 208 | lcd.drawLine(x,y+7,x+2,y+9,2); |
Iverson66 | 0:c5868f162227 | 209 | // get the new picture |
Iverson66 | 0:c5868f162227 | 210 | y=y-1; //change he value of the y coordinate |
Iverson66 | 0:c5868f162227 | 211 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 212 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 213 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 214 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 215 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 216 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 217 | } |
Iverson66 | 0:c5868f162227 | 218 | else |
Iverson66 | 0:c5868f162227 | 219 | { |
Iverson66 | 0:c5868f162227 | 220 | // out of the border, just stay |
Iverson66 | 0:c5868f162227 | 221 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 222 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 223 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 224 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 225 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 226 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 227 | } |
Iverson66 | 0:c5868f162227 | 228 | } |
Iverson66 | 0:c5868f162227 | 229 | if (joystick.direction == DOWN) |
Iverson66 | 0:c5868f162227 | 230 | { |
Iverson66 | 0:c5868f162227 | 231 | //the same use of the first one:joystick.direction == UP |
Iverson66 | 0:c5868f162227 | 232 | if(y<40) |
Iverson66 | 0:c5868f162227 | 233 | { |
Iverson66 | 0:c5868f162227 | 234 | lcd.drawCircle(x,y,2,2); |
Iverson66 | 0:c5868f162227 | 235 | lcd.drawLine(x,y+2,x,y+7,2); |
Iverson66 | 0:c5868f162227 | 236 | lcd.drawLine(x,y+4,x+3,y+4,2); |
Iverson66 | 0:c5868f162227 | 237 | lcd.drawLine(x,y+7,x-2,y+9,2); |
Iverson66 | 0:c5868f162227 | 238 | lcd.drawLine(x,y+7,x+2,y+9,2); |
Iverson66 | 0:c5868f162227 | 239 | y=y+1; |
Iverson66 | 0:c5868f162227 | 240 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 241 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 242 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 243 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 244 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 245 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 246 | } |
Iverson66 | 0:c5868f162227 | 247 | else |
Iverson66 | 0:c5868f162227 | 248 | { |
Iverson66 | 0:c5868f162227 | 249 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 250 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 251 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 252 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 253 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 254 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 255 | } |
Iverson66 | 0:c5868f162227 | 256 | |
Iverson66 | 0:c5868f162227 | 257 | } |
Iverson66 | 0:c5868f162227 | 258 | if (joystick.direction == LEFT) {//the same use of the first one:joystick.direction == UP |
Iverson66 | 0:c5868f162227 | 259 | if(x<60) |
Iverson66 | 0:c5868f162227 | 260 | { |
Iverson66 | 0:c5868f162227 | 261 | lcd.drawCircle(x,y,2,2); |
Iverson66 | 0:c5868f162227 | 262 | lcd.drawLine(x,y+2,x,y+7,2); |
Iverson66 | 0:c5868f162227 | 263 | lcd.drawLine(x,y+4,x+3,y+4,2); |
Iverson66 | 0:c5868f162227 | 264 | lcd.drawLine(x,y+7,x-2,y+9,2); |
Iverson66 | 0:c5868f162227 | 265 | lcd.drawLine(x,y+7,x+2,y+9,2); |
Iverson66 | 0:c5868f162227 | 266 | x=x+1; |
Iverson66 | 0:c5868f162227 | 267 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 268 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 269 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 270 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 271 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 272 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 273 | } |
Iverson66 | 0:c5868f162227 | 274 | else |
Iverson66 | 0:c5868f162227 | 275 | { |
Iverson66 | 0:c5868f162227 | 276 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 277 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 278 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 279 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 280 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 281 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 282 | } |
Iverson66 | 0:c5868f162227 | 283 | } |
Iverson66 | 0:c5868f162227 | 284 | if (joystick.direction == RIGHT) {//the same use of the first one:joystick.direction == UP |
Iverson66 | 0:c5868f162227 | 285 | if(x>q+5) |
Iverson66 | 0:c5868f162227 | 286 | { |
Iverson66 | 0:c5868f162227 | 287 | lcd.drawCircle(x,y,2,2); |
Iverson66 | 0:c5868f162227 | 288 | lcd.drawLine(x,y+2,x,y+7,2); |
Iverson66 | 0:c5868f162227 | 289 | lcd.drawLine(x,y+4,x+3,y+4,2); |
Iverson66 | 0:c5868f162227 | 290 | lcd.drawLine(x,y+7,x-2,y+9,2); |
Iverson66 | 0:c5868f162227 | 291 | lcd.drawLine(x,y+7,x+2,y+9,2); |
Iverson66 | 0:c5868f162227 | 292 | x=x-1; |
Iverson66 | 0:c5868f162227 | 293 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 294 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 295 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 296 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 297 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 298 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 299 | } |
Iverson66 | 0:c5868f162227 | 300 | else |
Iverson66 | 0:c5868f162227 | 301 | { |
Iverson66 | 0:c5868f162227 | 302 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 303 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 304 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 305 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 306 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 307 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 308 | } |
Iverson66 | 0:c5868f162227 | 309 | } |
Iverson66 | 0:c5868f162227 | 310 | if (joystick.direction == CENTRE) {//no changing while the direction in centre, so just stay |
Iverson66 | 0:c5868f162227 | 311 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 312 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 313 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 314 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 315 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 316 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 317 | } |
Iverson66 | 0:c5868f162227 | 318 | if (joystick.direction == UNKNOWN) {//no changing while the direction unknown, so just stay |
Iverson66 | 0:c5868f162227 | 319 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 320 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 321 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 322 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 323 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 324 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 325 | } |
Iverson66 | 0:c5868f162227 | 326 | } |
Iverson66 | 0:c5868f162227 | 327 | //use if-else if statement to recognise the different situation |
Iverson66 | 0:c5868f162227 | 328 | if ((a1>=10)&&((a1!=x+3)||(b1!=y+4))) {//if the ball don't touch, then keep moving |
Iverson66 | 0:c5868f162227 | 329 | lcd.drawCircle(a1,b1,1,2); |
Iverson66 | 0:c5868f162227 | 330 | a1--; |
Iverson66 | 0:c5868f162227 | 331 | } else if ((a1==x+3) && (b1==y+4) && (a1>=10)) { // if the ball touch the people hand,stop moving and |
Iverson66 | 0:c5868f162227 | 332 | lcd.clear(); // get out of the loop, and get a new ball |
Iverson66 | 0:c5868f162227 | 333 | break; |
Iverson66 | 0:c5868f162227 | 334 | } else if (a1<=10) { // if the ball touch the block, then show sentence to tell the player and |
Iverson66 | 0:c5868f162227 | 335 | lcd.clear(); // get out of the loop, and get a new ball |
Iverson66 | 0:c5868f162227 | 336 | lcd.printString("lose the game",0,0); |
Iverson66 | 0:c5868f162227 | 337 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 338 | wait(2.0); |
Iverson66 | 0:c5868f162227 | 339 | break; |
Iverson66 | 0:c5868f162227 | 340 | } |
Iverson66 | 0:c5868f162227 | 341 | wait(0.5); |
Iverson66 | 0:c5868f162227 | 342 | } |
Iverson66 | 0:c5868f162227 | 343 | } |
Iverson66 | 0:c5868f162227 | 344 | |
Iverson66 | 0:c5868f162227 | 345 | void moving2 () |
Iverson66 | 0:c5868f162227 | 346 | { |
Iverson66 | 0:c5868f162227 | 347 | //same use of the function moving |
Iverson66 | 0:c5868f162227 | 348 | int a,b; |
Iverson66 | 0:c5868f162227 | 349 | int a1=setpointx(a); |
Iverson66 | 0:c5868f162227 | 350 | int b1=setpointy(b); |
Iverson66 | 0:c5868f162227 | 351 | calibrateJoystick(); // get centred values of joystick |
Iverson66 | 0:c5868f162227 | 352 | pollJoystick.attach(&updateJoystick,0.5); // read joystick 10 times per second |
Iverson66 | 0:c5868f162227 | 353 | while(1) |
Iverson66 | 0:c5868f162227 | 354 | { |
Iverson66 | 0:c5868f162227 | 355 | lcd.drawRect(0,0,84,48,2); |
Iverson66 | 0:c5868f162227 | 356 | lcd.drawRect(0,0,q,48,1); |
Iverson66 | 0:c5868f162227 | 357 | lcd.drawLine(50,0,50,48,1); |
Iverson66 | 0:c5868f162227 | 358 | lcd.drawCircle(a1,b1,1,1); |
Iverson66 | 0:c5868f162227 | 359 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 360 | if (printFlag) { // if flag set, clear flag and print joystick values to serial port |
Iverson66 | 0:c5868f162227 | 361 | printFlag = 0; |
Iverson66 | 0:c5868f162227 | 362 | pc.printf("x = %f y = %f button = %d ",joystick.x,joystick.y,joystick.button); |
Iverson66 | 0:c5868f162227 | 363 | // check joystick direction |
Iverson66 | 0:c5868f162227 | 364 | if (joystick.direction == UP) // the same way to draw the prople and the principle of the people moving |
Iverson66 | 0:c5868f162227 | 365 | { |
Iverson66 | 0:c5868f162227 | 366 | if(y>10) |
Iverson66 | 0:c5868f162227 | 367 | { |
Iverson66 | 0:c5868f162227 | 368 | lcd.drawCircle(x,y,2,2); |
Iverson66 | 0:c5868f162227 | 369 | lcd.drawLine(x,y+2,x,y+7,2); |
Iverson66 | 0:c5868f162227 | 370 | lcd.drawLine(x,y+4,x+3,y+4,2); |
Iverson66 | 0:c5868f162227 | 371 | lcd.drawLine(x,y+7,x-2,y+9,2); |
Iverson66 | 0:c5868f162227 | 372 | lcd.drawLine(x,y+7,x+2,y+9,2); |
Iverson66 | 0:c5868f162227 | 373 | y=y-1; |
Iverson66 | 0:c5868f162227 | 374 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 375 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 376 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 377 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 378 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 379 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 380 | } |
Iverson66 | 0:c5868f162227 | 381 | else |
Iverson66 | 0:c5868f162227 | 382 | { |
Iverson66 | 0:c5868f162227 | 383 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 384 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 385 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 386 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 387 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 388 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 389 | } |
Iverson66 | 0:c5868f162227 | 390 | } |
Iverson66 | 0:c5868f162227 | 391 | if (joystick.direction == DOWN) |
Iverson66 | 0:c5868f162227 | 392 | { // same as the function moving |
Iverson66 | 0:c5868f162227 | 393 | if(y<40) |
Iverson66 | 0:c5868f162227 | 394 | { |
Iverson66 | 0:c5868f162227 | 395 | lcd.drawCircle(x,y,2,2); |
Iverson66 | 0:c5868f162227 | 396 | lcd.drawLine(x,y+2,x,y+7,2); |
Iverson66 | 0:c5868f162227 | 397 | lcd.drawLine(x,y+4,x+3,y+4,2); |
Iverson66 | 0:c5868f162227 | 398 | lcd.drawLine(x,y+7,x-2,y+9,2); |
Iverson66 | 0:c5868f162227 | 399 | lcd.drawLine(x,y+7,x+2,y+9,2); |
Iverson66 | 0:c5868f162227 | 400 | y=y+1; |
Iverson66 | 0:c5868f162227 | 401 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 402 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 403 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 404 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 405 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 406 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 407 | } |
Iverson66 | 0:c5868f162227 | 408 | else |
Iverson66 | 0:c5868f162227 | 409 | { |
Iverson66 | 0:c5868f162227 | 410 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 411 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 412 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 413 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 414 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 415 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 416 | } |
Iverson66 | 0:c5868f162227 | 417 | |
Iverson66 | 0:c5868f162227 | 418 | } |
Iverson66 | 0:c5868f162227 | 419 | if (joystick.direction == LEFT) { |
Iverson66 | 0:c5868f162227 | 420 | if(x<75) |
Iverson66 | 0:c5868f162227 | 421 | { // same as the function moving |
Iverson66 | 0:c5868f162227 | 422 | lcd.drawCircle(x,y,2,2); |
Iverson66 | 0:c5868f162227 | 423 | lcd.drawLine(x,y+2,x,y+7,2); |
Iverson66 | 0:c5868f162227 | 424 | lcd.drawLine(x,y+4,x+3,y+4,2); |
Iverson66 | 0:c5868f162227 | 425 | lcd.drawLine(x,y+7,x-2,y+9,2); |
Iverson66 | 0:c5868f162227 | 426 | lcd.drawLine(x,y+7,x+2,y+9,2); |
Iverson66 | 0:c5868f162227 | 427 | x=x+1; |
Iverson66 | 0:c5868f162227 | 428 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 429 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 430 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 431 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 432 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 433 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 434 | } |
Iverson66 | 0:c5868f162227 | 435 | else |
Iverson66 | 0:c5868f162227 | 436 | { |
Iverson66 | 0:c5868f162227 | 437 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 438 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 439 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 440 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 441 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 442 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 443 | } |
Iverson66 | 0:c5868f162227 | 444 | } |
Iverson66 | 0:c5868f162227 | 445 | if (joystick.direction == RIGHT) { |
Iverson66 | 0:c5868f162227 | 446 | if(x>50) |
Iverson66 | 0:c5868f162227 | 447 | { // same as the function moving |
Iverson66 | 0:c5868f162227 | 448 | lcd.drawCircle(x,y,2,2); |
Iverson66 | 0:c5868f162227 | 449 | lcd.drawLine(x,y+2,x,y+7,2); |
Iverson66 | 0:c5868f162227 | 450 | lcd.drawLine(x,y+4,x+3,y+4,2); |
Iverson66 | 0:c5868f162227 | 451 | lcd.drawLine(x,y+7,x-2,y+9,2); |
Iverson66 | 0:c5868f162227 | 452 | lcd.drawLine(x,y+7,x+2,y+9,2); |
Iverson66 | 0:c5868f162227 | 453 | x=x-1; |
Iverson66 | 0:c5868f162227 | 454 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 455 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 456 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 457 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 458 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 459 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 460 | } |
Iverson66 | 0:c5868f162227 | 461 | else |
Iverson66 | 0:c5868f162227 | 462 | { |
Iverson66 | 0:c5868f162227 | 463 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 464 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 465 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 466 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 467 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 468 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 469 | } |
Iverson66 | 0:c5868f162227 | 470 | } |
Iverson66 | 0:c5868f162227 | 471 | if (joystick.direction == CENTRE) |
Iverson66 | 0:c5868f162227 | 472 | { // same as the function moving |
Iverson66 | 0:c5868f162227 | 473 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 474 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 475 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 476 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 477 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 478 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 479 | } |
Iverson66 | 0:c5868f162227 | 480 | if (joystick.direction == UNKNOWN) |
Iverson66 | 0:c5868f162227 | 481 | { // same as the function moving |
Iverson66 | 0:c5868f162227 | 482 | lcd.drawCircle(x,y,2,1); |
Iverson66 | 0:c5868f162227 | 483 | lcd.drawLine(x,y+2,x,y+7,1); |
Iverson66 | 0:c5868f162227 | 484 | lcd.drawLine(x,y+4,x+3,y+4,1); |
Iverson66 | 0:c5868f162227 | 485 | lcd.drawLine(x,y+7,x-2,y+9,1); |
Iverson66 | 0:c5868f162227 | 486 | lcd.drawLine(x,y+7,x+2,y+9,1); |
Iverson66 | 0:c5868f162227 | 487 | lcd.refresh(); |
Iverson66 | 0:c5868f162227 | 488 | } |
Iverson66 | 0:c5868f162227 | 489 | } |
Iverson66 | 0:c5868f162227 | 490 | if ((a1>50)&&((a1!=x+3)||(b1!=y+4))) {// same as the function moving |
Iverson66 | 0:c5868f162227 | 491 | lcd.drawCircle(a1,b1,1,2); |
Iverson66 | 0:c5868f162227 | 492 | a1--; |
Iverson66 | 0:c5868f162227 | 493 | } else if ((a1==x+3) && (b1==y+4) && (a1>=10)) { // same as the function moving |
Iverson66 | 0:c5868f162227 | 494 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 495 | break; |
Iverson66 | 0:c5868f162227 | 496 | } else if (a1<=50) { |
Iverson66 | 0:c5868f162227 | 497 | lcd.clear(); |
Iverson66 | 0:c5868f162227 | 498 | r=1; // set global constant r=1 to jump the while(1) loop in the int main function |
Iverson66 | 0:c5868f162227 | 499 | wait(2.0); |
Iverson66 | 0:c5868f162227 | 500 | break; |
Iverson66 | 0:c5868f162227 | 501 | } |
Iverson66 | 0:c5868f162227 | 502 | wait(0.5); |
Iverson66 | 0:c5868f162227 | 503 | } |
Iverson66 | 0:c5868f162227 | 504 | } |
Iverson66 | 0:c5868f162227 | 505 | // read default positions of the joystick to calibrate later readings |
Iverson66 | 0:c5868f162227 | 506 | void calibrateJoystick() |
Iverson66 | 0:c5868f162227 | 507 | { |
Iverson66 | 0:c5868f162227 | 508 | |
Iverson66 | 0:c5868f162227 | 509 | // must not move during calibration |
Iverson66 | 0:c5868f162227 | 510 | joystick.x0 = xPot; // initial positions in the range 0.0 to 1.0 (0.5 if centred exactly) |
Iverson66 | 0:c5868f162227 | 511 | joystick.y0 = yPot; |
Iverson66 | 0:c5868f162227 | 512 | } |
Iverson66 | 0:c5868f162227 | 513 | void updateJoystick() |
Iverson66 | 0:c5868f162227 | 514 | { |
Iverson66 | 0:c5868f162227 | 515 | // read current joystick values relative to calibrated values (in range -0.5 to 0.5, 0.0 is centred) |
Iverson66 | 0:c5868f162227 | 516 | joystick.x = xPot - joystick.x0; |
Iverson66 | 0:c5868f162227 | 517 | joystick.y = yPot - joystick.y0; |
Iverson66 | 0:c5868f162227 | 518 | // read button state |
Iverson66 | 0:c5868f162227 | 519 | joystick.button = button; |
Iverson66 | 0:c5868f162227 | 520 | |
Iverson66 | 0:c5868f162227 | 521 | // calculate direction depending on x,y values |
Iverson66 | 0:c5868f162227 | 522 | // tolerance allows a little lee-way in case joystick not exactly in the stated direction |
Iverson66 | 0:c5868f162227 | 523 | if ( fabs(joystick.y) < DIRECTION_TOLERANCE && fabs(joystick.x) < DIRECTION_TOLERANCE) { |
Iverson66 | 0:c5868f162227 | 524 | joystick.direction = CENTRE; |
Iverson66 | 0:c5868f162227 | 525 | } else if ( joystick.y > DIRECTION_TOLERANCE && fabs(joystick.x) < DIRECTION_TOLERANCE) { |
Iverson66 | 0:c5868f162227 | 526 | joystick.direction = UP; |
Iverson66 | 0:c5868f162227 | 527 | } else if ( joystick.y < DIRECTION_TOLERANCE && fabs(joystick.x) < DIRECTION_TOLERANCE) { |
Iverson66 | 0:c5868f162227 | 528 | joystick.direction = DOWN; |
Iverson66 | 0:c5868f162227 | 529 | } else if ( joystick.x > DIRECTION_TOLERANCE && fabs(joystick.y) < DIRECTION_TOLERANCE) { |
Iverson66 | 0:c5868f162227 | 530 | joystick.direction = RIGHT; |
Iverson66 | 0:c5868f162227 | 531 | } else if ( joystick.x < DIRECTION_TOLERANCE && fabs(joystick.y) < DIRECTION_TOLERANCE) { |
Iverson66 | 0:c5868f162227 | 532 | joystick.direction = LEFT; |
Iverson66 | 0:c5868f162227 | 533 | } else { |
Iverson66 | 0:c5868f162227 | 534 | joystick.direction = UNKNOWN; |
Iverson66 | 0:c5868f162227 | 535 | } |
Iverson66 | 0:c5868f162227 | 536 | |
Iverson66 | 0:c5868f162227 | 537 | // set flag for printing |
Iverson66 | 0:c5868f162227 | 538 | printFlag = 1; |
Iverson66 | 0:c5868f162227 | 539 | } |
Iverson66 | 0:c5868f162227 | 540 | |
Iverson66 | 0:c5868f162227 | 541 | |
Iverson66 | 0:c5868f162227 | 542 | |
Iverson66 | 0:c5868f162227 | 543 | |
Iverson66 | 0:c5868f162227 | 544 |