111
Dependencies: 4DGL-uLCD-SE AD5206 mbed-rtos mbed
Fork of 4180_proj by
menu.cpp@13:4cec0e446def, 2015-12-07 (annotated)
- Committer:
- hanjiex
- Date:
- Mon Dec 07 18:41:29 2015 +0000
- Revision:
- 13:4cec0e446def
- Parent:
- 12:b6265952fb06
111
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 | 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 | } |