111

Dependencies:   4DGL-uLCD-SE AD5206 mbed-rtos mbed

Fork of 4180_proj by ECE4180proj

Committer:
hanjiex
Date:
Mon Dec 07 18:41:29 2015 +0000
Revision:
13:4cec0e446def
Parent:
12:b6265952fb06
111

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hanjiex 10:159f38636ed4 1 /*
hanjiex 10:159f38636ed4 2 * menu.cpp
hanjiex 11:d21c2da8b290 3 * Author: Hanjie Xie
hanjiex 10:159f38636ed4 4 */
hanjiex 10:159f38636ed4 5
hanjiex 10:159f38636ed4 6 #include "mbed.h"
hanjiex 10:159f38636ed4 7 #include "uLCD_4DGL.h"
hanjiex 10:159f38636ed4 8 #include "menu.h"
hanjiex 10:159f38636ed4 9 #include "para.h"
hanjiex 12:b6265952fb06 10 #include <mpr121.h>
hanjiex 12:b6265952fb06 11
hanjiex 12:b6265952fb06 12 uLCD_4DGL uLCD(p13,p14,p15);
hanjiex 12:b6265952fb06 13 //touch pad declare
hanjiex 12:b6265952fb06 14 InterruptIn interrupt(p26);// Create the interrupt receiver object on pin 26
hanjiex 12:b6265952fb06 15 I2C i2c(p9, p10);// Setup the i2c bus on pins 28 and 27
hanjiex 12:b6265952fb06 16 Mpr121 mpr121(&i2c, Mpr121::ADD_VSS);
hanjiex 12:b6265952fb06 17
hanjiex 12:b6265952fb06 18 // for test use
hanjiex 12:b6265952fb06 19 Serial pc(USBTX, USBRX);
hanjiex 12:b6265952fb06 20 DigitalOut led1(LED1);
hanjiex 12:b6265952fb06 21 DigitalOut led2(LED2);
hanjiex 12:b6265952fb06 22 DigitalOut led3(LED3);
hanjiex 12:b6265952fb06 23 DigitalOut led4(LED4);
hanjiex 13:4cec0e446def 24 DigitalIn pb(p21);
hanjiex 12:b6265952fb06 25 /*
hanjiex 10:159f38636ed4 26 DigitalIn left_pb1(p21);
hanjiex 10:159f38636ed4 27 DigitalIn right_pb1(p23);
hanjiex 10:159f38636ed4 28 DigitalIn fire_pb1(p22);
hanjiex 10:159f38636ed4 29 DigitalIn toggle_pb1(p24);
hanjiex 12:b6265952fb06 30 */
hanjiex 10:159f38636ed4 31 int start_enable;
hanjiex 10:159f38636ed4 32 int rules_display;
hanjiex 10:159f38636ed4 33 int dev_display;
hanjiex 10:159f38636ed4 34 int go_to_quit;
hanjiex 10:159f38636ed4 35 // declare the class
hanjiex 10:159f38636ed4 36 para mypara;
hanjiex 10:159f38636ed4 37
hanjiex 12:b6265952fb06 38 int keypress = 100;
hanjiex 12:b6265952fb06 39 bool toggle = 0;
hanjiex 12:b6265952fb06 40 void fallInterrupt() {
hanjiex 12:b6265952fb06 41 int key_code=0;
hanjiex 12:b6265952fb06 42 int i=0;
hanjiex 12:b6265952fb06 43 int value=mpr121.read(0x00);
hanjiex 12:b6265952fb06 44 value +=mpr121.read(0x01)<<8;
hanjiex 12:b6265952fb06 45 // LED demo mod by J. Hamblen
hanjiex 12:b6265952fb06 46 //pc.printf("MPR value: %x \r\n", value);
hanjiex 12:b6265952fb06 47 i=0;
hanjiex 12:b6265952fb06 48 // puts key number out to LEDs for demo
hanjiex 12:b6265952fb06 49 for (i=0; i<12; i++) {
hanjiex 12:b6265952fb06 50 if (((value>>i)&0x01)==1) key_code=i+1;
hanjiex 12:b6265952fb06 51 }
hanjiex 12:b6265952fb06 52 keypress = key_code - 1;
hanjiex 12:b6265952fb06 53 toggle = !toggle;
hanjiex 12:b6265952fb06 54 led4=key_code & 0x01;
hanjiex 12:b6265952fb06 55 led3=(key_code>>1) & 0x01;
hanjiex 12:b6265952fb06 56 led2=(key_code>>2) & 0x01;
hanjiex 12:b6265952fb06 57 led1=(key_code>>3) & 0x01;
hanjiex 12:b6265952fb06 58 }
hanjiex 12:b6265952fb06 59
hanjiex 10:159f38636ed4 60 int begain_first(){
hanjiex 13:4cec0e446def 61 int mode;
hanjiex 13:4cec0e446def 62 pb.mode(PullUp);
hanjiex 12:b6265952fb06 63 /*
hanjiex 10:159f38636ed4 64 left_pb1.mode(PullUp);
hanjiex 10:159f38636ed4 65 right_pb1.mode(PullUp);
hanjiex 10:159f38636ed4 66 fire_pb1.mode(PullUp);
hanjiex 12:b6265952fb06 67 toggle_pb1.mode(PullUp);*/
hanjiex 12:b6265952fb06 68 interrupt.fall(&fallInterrupt);
hanjiex 12:b6265952fb06 69 interrupt.mode(PullUp);
hanjiex 13:4cec0e446def 70 mode = display_beginning();
hanjiex 13:4cec0e446def 71 while(mode == 1){
hanjiex 10:159f38636ed4 72 display_main_menu();
hanjiex 10:159f38636ed4 73 choose();
hanjiex 10:159f38636ed4 74 check();
hanjiex 10:159f38636ed4 75 if(start_enable==1){
hanjiex 10:159f38636ed4 76 break;
hanjiex 10:159f38636ed4 77 }
hanjiex 10:159f38636ed4 78 }
hanjiex 13:4cec0e446def 79 while (mode == 0) {
hanjiex 13:4cec0e446def 80 uLCD.printf("PC MODE");
hanjiex 13:4cec0e446def 81 }
hanjiex 13:4cec0e446def 82 return mode;
hanjiex 10:159f38636ed4 83 }
hanjiex 10:159f38636ed4 84
hanjiex 10:159f38636ed4 85 int return_menu(){
hanjiex 10:159f38636ed4 86 uLCD.cls();
hanjiex 10:159f38636ed4 87 while(1){
hanjiex 10:159f38636ed4 88 display_main_menu();
hanjiex 10:159f38636ed4 89 choose();
hanjiex 10:159f38636ed4 90 check();
hanjiex 10:159f38636ed4 91 if(start_enable==1){
hanjiex 10:159f38636ed4 92 para_setting();
hanjiex 10:159f38636ed4 93 return 1;
hanjiex 10:159f38636ed4 94 }
hanjiex 10:159f38636ed4 95 }
hanjiex 10:159f38636ed4 96 }
hanjiex 10:159f38636ed4 97
hanjiex 13:4cec0e446def 98 int display_beginning(){
hanjiex 10:159f38636ed4 99 uLCD.color(RED);
hanjiex 10:159f38636ed4 100 uLCD.printf("\nWelcome\n"); //Default Green on black text
hanjiex 10:159f38636ed4 101 uLCD.printf("\nTo\n"); //Default Green on black text
hanjiex 10:159f38636ed4 102 uLCD.printf("\nMbed\n");
hanjiex 10:159f38636ed4 103 uLCD.printf("\nFunction Genator!\n");
hanjiex 10:159f38636ed4 104 wait(2);
hanjiex 10:159f38636ed4 105 uLCD.cls();
hanjiex 13:4cec0e446def 106 uLCD.printf("\nChoose your control mode\n");
hanjiex 13:4cec0e446def 107 uLCD.locate(0,5);
hanjiex 13:4cec0e446def 108 uLCD.printf("\n1. mbed mode\n");
hanjiex 13:4cec0e446def 109 uLCD.locate(0,7);
hanjiex 13:4cec0e446def 110 uLCD.printf("\n2. PC mode\n");
hanjiex 13:4cec0e446def 111 int choose = 0;
hanjiex 13:4cec0e446def 112 int mode = 0;
hanjiex 13:4cec0e446def 113 while(choose == 0){
hanjiex 13:4cec0e446def 114 //pc.printf("\nkeypress is: %d\n", keypress);
hanjiex 13:4cec0e446def 115 if (keypress == 1) {
hanjiex 13:4cec0e446def 116 choose = 1;
hanjiex 13:4cec0e446def 117 mode = 1;
hanjiex 13:4cec0e446def 118 }
hanjiex 13:4cec0e446def 119 if (keypress == 2) {
hanjiex 13:4cec0e446def 120 choose = 1;
hanjiex 13:4cec0e446def 121 mode = 0;
hanjiex 13:4cec0e446def 122 }
hanjiex 13:4cec0e446def 123 }
hanjiex 13:4cec0e446def 124 return mode;
hanjiex 10:159f38636ed4 125 }
hanjiex 10:159f38636ed4 126
hanjiex 10:159f38636ed4 127 void display_main_menu(){
hanjiex 13:4cec0e446def 128 uLCD.cls();
hanjiex 10:159f38636ed4 129 uLCD.color(GREEN);
hanjiex 12:b6265952fb06 130 uLCD.locate(0,3);
hanjiex 12:b6265952fb06 131 uLCD.printf("\n1. Let's Start!\n");
hanjiex 12:b6265952fb06 132 uLCD.locate(0,5);
hanjiex 12:b6265952fb06 133 uLCD.printf("\n2. How to use?\n");
hanjiex 12:b6265952fb06 134 uLCD.locate(0,7);
hanjiex 12:b6265952fb06 135 uLCD.printf("\n3. Developer\n");
hanjiex 12:b6265952fb06 136 uLCD.locate(0,9);
hanjiex 12:b6265952fb06 137 uLCD.printf("\n4. Quit.\n");
hanjiex 12:b6265952fb06 138 /*uLCD.locate(4,12);
hanjiex 10:159f38636ed4 139 uLCD.printf("\n OK UP DOWN \n");
hanjiex 10:159f38636ed4 140 uLCD.filled_circle(20,100,2,GREEN);
hanjiex 10:159f38636ed4 141 uLCD.filled_circle(50,100,2,GREEN);
hanjiex 10:159f38636ed4 142 uLCD.filled_circle(80,100,2,GREEN);
hanjiex 12:b6265952fb06 143 uLCD.filled_circle(110,100,2,GREEN);*/
hanjiex 10:159f38636ed4 144 wait(1);
hanjiex 10:159f38636ed4 145 }
hanjiex 10:159f38636ed4 146
hanjiex 10:159f38636ed4 147 void choose(){
hanjiex 10:159f38636ed4 148 start_enable = 0;
hanjiex 10:159f38636ed4 149 rules_display = 0;
hanjiex 10:159f38636ed4 150 dev_display = 0;
hanjiex 10:159f38636ed4 151 go_to_quit = 0;
hanjiex 12:b6265952fb06 152 //int circle_y = 35;
hanjiex 12:b6265952fb06 153 //uLCD.filled_circle(10,35,2,BLUE); //51 67 83 +16
hanjiex 10:159f38636ed4 154 int choose = 0;
hanjiex 10:159f38636ed4 155 while(choose == 0){
hanjiex 12:b6265952fb06 156 pc.printf("\nkeypress is: %d\n", keypress);
hanjiex 12:b6265952fb06 157 if (keypress == 1) {
hanjiex 12:b6265952fb06 158 choose = 1;
hanjiex 12:b6265952fb06 159 start_enable = 1;
hanjiex 12:b6265952fb06 160 }
hanjiex 12:b6265952fb06 161 if (keypress == 2) {
hanjiex 12:b6265952fb06 162 choose = 1;
hanjiex 12:b6265952fb06 163 rules_display = 1;
hanjiex 12:b6265952fb06 164 }
hanjiex 12:b6265952fb06 165 if (keypress == 3) {
hanjiex 12:b6265952fb06 166 choose = 1;
hanjiex 12:b6265952fb06 167 dev_display = 1;
hanjiex 12:b6265952fb06 168 }
hanjiex 12:b6265952fb06 169 if (keypress == 4) {
hanjiex 12:b6265952fb06 170 choose = 1;
hanjiex 12:b6265952fb06 171 go_to_quit = 1;
hanjiex 12:b6265952fb06 172 }
hanjiex 12:b6265952fb06 173 /*
hanjiex 12:b6265952fb06 174 if(keypress == 1){
hanjiex 10:159f38636ed4 175 choose = 1;
hanjiex 10:159f38636ed4 176 if(circle_y == 35){
hanjiex 10:159f38636ed4 177 start_enable = 1;
hanjiex 10:159f38636ed4 178 }else if(circle_y == 51){
hanjiex 10:159f38636ed4 179 rules_display = 1;
hanjiex 10:159f38636ed4 180 }else if(circle_y == 67){
hanjiex 10:159f38636ed4 181 dev_display = 1;
hanjiex 10:159f38636ed4 182 }else if(circle_y == 83){
hanjiex 10:159f38636ed4 183 go_to_quit = 1;
hanjiex 10:159f38636ed4 184 }
hanjiex 10:159f38636ed4 185 uLCD.cls();
hanjiex 10:159f38636ed4 186 }
hanjiex 12:b6265952fb06 187 if(keypress == 2){
hanjiex 10:159f38636ed4 188 uLCD.filled_circle(10,circle_y,2,BLACK);
hanjiex 10:159f38636ed4 189 wait(0.2);
hanjiex 10:159f38636ed4 190 if(circle_y > 35){
hanjiex 10:159f38636ed4 191 circle_y = circle_y-16;
hanjiex 10:159f38636ed4 192 }
hanjiex 10:159f38636ed4 193 uLCD.filled_circle(10,circle_y,2,BLUE);
hanjiex 10:159f38636ed4 194 }
hanjiex 12:b6265952fb06 195 if(keypress == 3){
hanjiex 10:159f38636ed4 196 uLCD.filled_circle(10,circle_y,2,BLACK);
hanjiex 10:159f38636ed4 197 wait(0.2);
hanjiex 10:159f38636ed4 198 if(circle_y < 80){
hanjiex 10:159f38636ed4 199 circle_y = circle_y+16;
hanjiex 10:159f38636ed4 200 }
hanjiex 10:159f38636ed4 201 uLCD.filled_circle(10,circle_y,2,BLUE);
hanjiex 12:b6265952fb06 202 }*/
hanjiex 10:159f38636ed4 203 }
hanjiex 10:159f38636ed4 204 }
hanjiex 10:159f38636ed4 205
hanjiex 10:159f38636ed4 206 void check(){
hanjiex 10:159f38636ed4 207 if(rules_display == 1){
hanjiex 12:b6265952fb06 208 uLCD.printf("Follow the instruction on each page");
hanjiex 12:b6265952fb06 209 wait(5);
hanjiex 12:b6265952fb06 210 uLCD.cls();
hanjiex 10:159f38636ed4 211 } else if(dev_display == 1){
hanjiex 12:b6265952fb06 212 uLCD.cls();
hanjiex 10:159f38636ed4 213 uLCD.locate(4,3);
hanjiex 10:159f38636ed4 214 uLCD.printf("\n JIN XUEFEN\n");
hanjiex 10:159f38636ed4 215 uLCD.locate(4,5);
hanjiex 10:159f38636ed4 216 uLCD.printf("\n PENG YUQING\n");
hanjiex 10:159f38636ed4 217 uLCD.locate(4,7);
hanjiex 10:159f38636ed4 218 uLCD.printf("\n TAO QIUYANG\n");
hanjiex 10:159f38636ed4 219 uLCD.locate(4,9);
hanjiex 10:159f38636ed4 220 uLCD.printf("\n XIE HANJIE\n");
hanjiex 10:159f38636ed4 221 wait(5);
hanjiex 10:159f38636ed4 222 uLCD.cls();
hanjiex 10:159f38636ed4 223 } else if(go_to_quit == 1){
hanjiex 10:159f38636ed4 224 uLCD.printf("\nBye\n");
hanjiex 10:159f38636ed4 225 exit(0);
hanjiex 10:159f38636ed4 226 }
hanjiex 10:159f38636ed4 227 }
hanjiex 10:159f38636ed4 228
hanjiex 11:d21c2da8b290 229 para para_setting() {
hanjiex 10:159f38636ed4 230 mode_set();
hanjiex 10:159f38636ed4 231 freq_set();
hanjiex 10:159f38636ed4 232 amp_set();
hanjiex 11:d21c2da8b290 233 //offset_set();
hanjiex 10:159f38636ed4 234 para_display();
hanjiex 11:d21c2da8b290 235 return mypara;
hanjiex 10:159f38636ed4 236 }
hanjiex 10:159f38636ed4 237
hanjiex 10:159f38636ed4 238 void mode_set() {
hanjiex 12:b6265952fb06 239 uLCD.cls();
hanjiex 12:b6265952fb06 240 uLCD.locate(0,1);
hanjiex 12:b6265952fb06 241 uLCD.printf("Select a wave form");
hanjiex 12:b6265952fb06 242 uLCD.color(GREEN);
hanjiex 12:b6265952fb06 243 uLCD.locate(0,3);
hanjiex 12:b6265952fb06 244 uLCD.printf("\n1.Sine wave\n");
hanjiex 12:b6265952fb06 245 uLCD.locate(0,5);
hanjiex 12:b6265952fb06 246 uLCD.printf("\n2.Square wave\n");
hanjiex 12:b6265952fb06 247 uLCD.locate(0,7);
hanjiex 12:b6265952fb06 248 uLCD.printf("\n3.Tringle wave\n");
hanjiex 12:b6265952fb06 249 uLCD.locate(0,12);
hanjiex 12:b6265952fb06 250 uLCD.printf("\nK11:Reset\n");
hanjiex 12:b6265952fb06 251 int choose = 0;
hanjiex 12:b6265952fb06 252 while(choose == 0){
hanjiex 12:b6265952fb06 253 if(keypress == 1){
hanjiex 12:b6265952fb06 254 choose = 1;
hanjiex 12:b6265952fb06 255 mypara.set_type(0);
hanjiex 12:b6265952fb06 256 }
hanjiex 12:b6265952fb06 257 if(keypress == 2){
hanjiex 12:b6265952fb06 258 choose = 1;
hanjiex 12:b6265952fb06 259 mypara.set_type(1);
hanjiex 12:b6265952fb06 260 }
hanjiex 12:b6265952fb06 261 if(keypress == 3){
hanjiex 12:b6265952fb06 262 choose = 1;
hanjiex 12:b6265952fb06 263 mypara.set_type(2);
hanjiex 12:b6265952fb06 264 }
hanjiex 12:b6265952fb06 265 if(keypress == 11){
hanjiex 12:b6265952fb06 266 return_menu();
hanjiex 12:b6265952fb06 267 }
hanjiex 12:b6265952fb06 268 }
hanjiex 12:b6265952fb06 269 /*
hanjiex 10:159f38636ed4 270 int circle_y = 35;
hanjiex 10:159f38636ed4 271 uLCD.filled_circle(10,35,2,BLUE); //51 67 83 +16
hanjiex 10:159f38636ed4 272 int choose = 0;
hanjiex 10:159f38636ed4 273 while(choose == 0){
hanjiex 12:b6265952fb06 274 if(keypress == 1){
hanjiex 10:159f38636ed4 275 choose = 1;
hanjiex 10:159f38636ed4 276 int type = (circle_y - 35) / 16;
hanjiex 10:159f38636ed4 277 mypara.set_type(type);
hanjiex 10:159f38636ed4 278 uLCD.cls();
hanjiex 10:159f38636ed4 279 }
hanjiex 12:b6265952fb06 280 if(keypress == 2){
hanjiex 10:159f38636ed4 281 uLCD.filled_circle(10,circle_y,2,BLACK);
hanjiex 10:159f38636ed4 282 wait(0.2);
hanjiex 10:159f38636ed4 283 if(circle_y > 35){
hanjiex 10:159f38636ed4 284 circle_y = circle_y-16;
hanjiex 10:159f38636ed4 285 }
hanjiex 10:159f38636ed4 286 uLCD.filled_circle(10,circle_y,2,BLUE);
hanjiex 10:159f38636ed4 287 }
hanjiex 12:b6265952fb06 288 if(keypress == 3){
hanjiex 10:159f38636ed4 289 uLCD.filled_circle(10,circle_y,2,BLACK);
hanjiex 10:159f38636ed4 290 wait(0.2);
hanjiex 10:159f38636ed4 291 if(circle_y < 62){
hanjiex 10:159f38636ed4 292 circle_y = circle_y+16;
hanjiex 10:159f38636ed4 293 }
hanjiex 10:159f38636ed4 294 uLCD.filled_circle(10,circle_y,2,BLUE);
hanjiex 10:159f38636ed4 295 }
hanjiex 10:159f38636ed4 296 }
hanjiex 12:b6265952fb06 297 */
hanjiex 10:159f38636ed4 298 }
hanjiex 10:159f38636ed4 299
hanjiex 10:159f38636ed4 300 void freq_set() {
hanjiex 10:159f38636ed4 301 /*
hanjiex 10:159f38636ed4 302 int kilodig;
hanjiex 10:159f38636ed4 303 int hunddig;
hanjiex 10:159f38636ed4 304 int tensdig;
hanjiex 10:159f38636ed4 305 int unit;
hanjiex 10:159f38636ed4 306 uLCD.locate(4,3);
hanjiex 10:159f38636ed4 307 uLCD.printf("\n kilo place:");
hanjiex 10:159f38636ed4 308 uLCD.locate(4,5);
hanjiex 10:159f38636ed4 309 uLCD.printf("\n hundreds place:\n");
hanjiex 10:159f38636ed4 310 uLCD.locate(4,7);
hanjiex 10:159f38636ed4 311 uLCD.printf("\n tens placen:");
hanjiex 10:159f38636ed4 312 uLCD.locate(4,9);
hanjiex 12:b6265952fb06 313 uLCD.printf("\n unit:\n");
hanjiex 10:159f38636ed4 314 */
hanjiex 12:b6265952fb06 315 uLCD.cls();
hanjiex 12:b6265952fb06 316 uLCD.color(GREEN);
hanjiex 10:159f38636ed4 317 int choose = 0;
hanjiex 12:b6265952fb06 318 //float increment = 100;
hanjiex 12:b6265952fb06 319 uLCD.locate(0,0);
hanjiex 10:159f38636ed4 320 uLCD.printf("\nSet the frequency:\n");
hanjiex 12:b6265952fb06 321 uLCD.printf("\nRange from 0-3MHz\n");
hanjiex 12:b6265952fb06 322 uLCD.locate(4,12);
hanjiex 12:b6265952fb06 323 uLCD.printf("\nK10:OK K11:reset");
hanjiex 12:b6265952fb06 324 uLCD.locate(0,7);
hanjiex 12:b6265952fb06 325 uLCD.color(BLUE);
hanjiex 12:b6265952fb06 326 uLCD.printf("\nInput your value: \n");
hanjiex 12:b6265952fb06 327 int temp = 0;
hanjiex 12:b6265952fb06 328 bool tem_tog = toggle;
hanjiex 10:159f38636ed4 329 while(choose == 0){
hanjiex 12:b6265952fb06 330 if (keypress != 100 && tem_tog != toggle && keypress == -1 && keypress != 10) {tem_tog = toggle;}
hanjiex 12:b6265952fb06 331 if (keypress != 100 && tem_tog != toggle && keypress != -1 && keypress != 10){
hanjiex 12:b6265952fb06 332 tem_tog = toggle;
hanjiex 12:b6265952fb06 333 uLCD.printf("%d", keypress);
hanjiex 12:b6265952fb06 334 temp = temp * 10 + keypress;
hanjiex 12:b6265952fb06 335 wait(0.2);
hanjiex 12:b6265952fb06 336 }
hanjiex 12:b6265952fb06 337 if(keypress == 10){
hanjiex 10:159f38636ed4 338 choose = 1;
hanjiex 12:b6265952fb06 339 mypara.set_freq(temp);
hanjiex 10:159f38636ed4 340 }
hanjiex 12:b6265952fb06 341 if(keypress == 11){
hanjiex 12:b6265952fb06 342 return_menu();
hanjiex 12:b6265952fb06 343 }
hanjiex 10:159f38636ed4 344 }
hanjiex 10:159f38636ed4 345 }
hanjiex 10:159f38636ed4 346
hanjiex 10:159f38636ed4 347 void amp_set() {
hanjiex 10:159f38636ed4 348 int choose = 0;
hanjiex 12:b6265952fb06 349 uLCD.cls();
hanjiex 12:b6265952fb06 350 uLCD.color(GREEN);
hanjiex 12:b6265952fb06 351 uLCD.locate(0,0);
hanjiex 10:159f38636ed4 352 uLCD.printf("\nSet the amplitude:\n");
hanjiex 12:b6265952fb06 353 uLCD.locate(0,3);
hanjiex 12:b6265952fb06 354 uLCD.printf("\nRange from 0 - 5v\n");
hanjiex 12:b6265952fb06 355 uLCD.locate(0,12);
hanjiex 12:b6265952fb06 356 uLCD.printf("\nK11:reset");
hanjiex 12:b6265952fb06 357 uLCD.locate(0,7);
hanjiex 12:b6265952fb06 358 uLCD.color(BLUE);
hanjiex 12:b6265952fb06 359 uLCD.printf("\nInput your value: \n");
hanjiex 12:b6265952fb06 360 float temp = 0;
hanjiex 12:b6265952fb06 361 int tem_tog = toggle;
hanjiex 12:b6265952fb06 362 int decpoint = 0;
hanjiex 10:159f38636ed4 363 while(choose == 0){
hanjiex 12:b6265952fb06 364 if (keypress != 100 && tem_tog != toggle && keypress == -1 && keypress != 10) {tem_tog = toggle;}
hanjiex 12:b6265952fb06 365 if (keypress != 100 && tem_tog !=toggle && keypress != -1) {
hanjiex 12:b6265952fb06 366 if(keypress == 11){
hanjiex 12:b6265952fb06 367 return_menu();
hanjiex 12:b6265952fb06 368 }
hanjiex 12:b6265952fb06 369 tem_tog = toggle;
hanjiex 12:b6265952fb06 370 if(decpoint == 0) {
hanjiex 12:b6265952fb06 371 uLCD.printf("%d", keypress);
hanjiex 12:b6265952fb06 372 temp = (float)keypress;
hanjiex 12:b6265952fb06 373 decpoint = 1;
hanjiex 12:b6265952fb06 374 } else {
hanjiex 12:b6265952fb06 375 uLCD.printf(".%d", keypress);
hanjiex 12:b6265952fb06 376 temp = temp + (float)0.1 * keypress;
hanjiex 12:b6265952fb06 377 choose = 1;
hanjiex 12:b6265952fb06 378 mypara.set_amp(temp);
hanjiex 12:b6265952fb06 379 }
hanjiex 12:b6265952fb06 380 wait(0.2);
hanjiex 10:159f38636ed4 381 }
hanjiex 10:159f38636ed4 382 }
hanjiex 10:159f38636ed4 383 }
hanjiex 10:159f38636ed4 384
hanjiex 11:d21c2da8b290 385
hanjiex 10:159f38636ed4 386
hanjiex 10:159f38636ed4 387 void para_display() {
hanjiex 12:b6265952fb06 388 uLCD.cls();
hanjiex 12:b6265952fb06 389 uLCD.color(GREEN);
hanjiex 12:b6265952fb06 390 uLCD.locate(0,0);
hanjiex 12:b6265952fb06 391 switch ( mypara.get_type()){
hanjiex 12:b6265952fb06 392 case 1: uLCD.printf("\n 1.Type: sine\n");break;
hanjiex 12:b6265952fb06 393 case 2: uLCD.printf("\n 1.Type: square\n");break;
hanjiex 12:b6265952fb06 394 case 3: uLCD.printf("\n 1.Type: tringle\n");break;
hanjiex 12:b6265952fb06 395 }
hanjiex 12:b6265952fb06 396 uLCD.locate(0,3);
hanjiex 12:b6265952fb06 397 uLCD.printf("\n 2.Frequency:%d\n", mypara.get_freq());
hanjiex 12:b6265952fb06 398 uLCD.locate(0,6);
hanjiex 12:b6265952fb06 399 uLCD.printf("\n 3.Amplitude:%.1f\n", mypara.get_amp());
hanjiex 12:b6265952fb06 400 uLCD.color(RED);
hanjiex 12:b6265952fb06 401 uLCD.locate(0,8);
hanjiex 12:b6265952fb06 402 uLCD.printf("\n Your wave is out from P29");
hanjiex 12:b6265952fb06 403 uLCD.color(GREEN);
hanjiex 12:b6265952fb06 404 uLCD.locate(0,12);
hanjiex 12:b6265952fb06 405 uLCD.printf("\n K11:Reset");
hanjiex 12:b6265952fb06 406 while (1) {
hanjiex 12:b6265952fb06 407 if(keypress == 11){
hanjiex 12:b6265952fb06 408 return_menu();
hanjiex 12:b6265952fb06 409 }
hanjiex 12:b6265952fb06 410 }
hanjiex 10:159f38636ed4 411 }