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