jakob schreib mir bitte die methode auf int postion

Dependencies:   TextLCD mbed

Fork of Mbed-Mensch-3-Menu by Projekte_werkstatt

Committer:
ogris
Date:
Mon Mar 14 18:06:26 2016 +0000
Revision:
7:bd4b77580026
Parent:
6:eda2b36d5be1
q

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ladner 0:e97a6a69fe4b 1 #include "mbed.h"
ladner 1:0eaa7682f7e1 2 #include "WS2812B.h"
ladner 5:f4db4cd245e3 3 #include "TextLCD.h"
ladner 5:f4db4cd245e3 4 #include <string>
ladner 0:e97a6a69fe4b 5
ladner 0:e97a6a69fe4b 6 I2C i2c(P0_5,P0_4);
ladner 0:e97a6a69fe4b 7 Serial port(P0_19,P0_18);
ladner 0:e97a6a69fe4b 8 BusOut myled(P1_8,P1_9,P1_10,P1_11,P1_0,P1_1,P1_3,P1_4,P1_6,P1_7,P1_12,P1_13);
ladner 0:e97a6a69fe4b 9 AnalogIn ldr(P0_12);
ladner 0:e97a6a69fe4b 10 AnalogIn poti(P0_11);
ladner 1:0eaa7682f7e1 11 //BusOut rgb(P0_9,P1_15,P0_21);
ladner 1:0eaa7682f7e1 12 //BusIn btn(P1_16,P0_23,P0_10,P0_15);
ladner 1:0eaa7682f7e1 13
ladner 1:0eaa7682f7e1 14 RGBOut rgb(P0_21,P0_9,P1_15);
ladner 5:f4db4cd245e3 15 TextLCD lcd(p21, p22, p26, p25, p24, p23,TextLCD::LCD20x4);
ladner 1:0eaa7682f7e1 16
ladner 1:0eaa7682f7e1 17 LedOut Feld (P0_13);
ladner 1:0eaa7682f7e1 18 //LedOut Other(P0_13); //-> Würfel (ersten 3 LED in Binär-4. LED für 7. Zustand), Spieler, Start, Ziel, Referenz(auch RGB am board)
ladner 1:0eaa7682f7e1 19 // übrige 8 LED für zeit-Anzeige des Zuges einer KI
ladner 1:0eaa7682f7e1 20
ladner 1:0eaa7682f7e1 21 InterruptIn Button0(P0_1);
ladner 0:e97a6a69fe4b 22 InterruptIn Button1(P1_16);
ladner 0:e97a6a69fe4b 23 InterruptIn Button2(P0_23);
ladner 1:0eaa7682f7e1 24 InterruptIn Button3(P0_10);
ladner 1:0eaa7682f7e1 25 InterruptIn Button4(P0_15);
ladner 0:e97a6a69fe4b 26
ladner 5:f4db4cd245e3 27 InterruptIn DD_A(P0_22);//20
ladner 5:f4db4cd245e3 28 InterruptIn DD_B(P0_16);//19
ladner 5:f4db4cd245e3 29 InterruptIn DD_C(P0_14);//18
ladner 5:f4db4cd245e3 30 DigitalIn DD_D(P0_14);
ladner 5:f4db4cd245e3 31 BusIn DD(P0_22,P0_16);
ladner 5:f4db4cd245e3 32 //Timeout DD_reset;
ladner 5:f4db4cd245e3 33 char DD_last;
ladner 5:f4db4cd245e3 34 char DD_d;
ladner 1:0eaa7682f7e1 35
ladner 5:f4db4cd245e3 36 void dreh();
ladner 5:f4db4cd245e3 37 void druck();
ladner 1:0eaa7682f7e1 38
ladner 5:f4db4cd245e3 39 void up();
ladner 5:f4db4cd245e3 40 void down();
ladner 5:f4db4cd245e3 41 void accept();
ladner 5:f4db4cd245e3 42 void exit();
ladner 5:f4db4cd245e3 43 void print_menu();
ladner 5:f4db4cd245e3 44 void Control();
ogris 7:bd4b77580026 45 void ausfuehren();
ladner 1:0eaa7682f7e1 46
ladner 5:f4db4cd245e3 47 //string test ("");
ladner 5:f4db4cd245e3 48 // "1234567890123456789","1234567890123456789","1234567890123456789","1234567890123456789", ,"1234567890123456789","1234567890123456789","1234567890123456789",
ogris 7:bd4b77580026 49 const char * const text_ln0[] = {"MENU: ","Spiel-Menu: ","Anzeige-Menu: ","Speicher-Menu: ","","7.Zustand-Menu: ","Farben-Menu: ","Spiel-Menu: ","","Spielregeln-Menu: ","Hell./Sp.Led-Menu: ","Config-Menu: ","","Autplay-Menu: ","Wurfel-Menu: ","Ofline/Com-Menu: ","","Colour-Menu "};
ogris 7:bd4b77580026 50 const char * const text_ln1[] = {"Spiel ","7.Zustand ","Farben ","Spiel ","","Disable ","accept ","Laden ","","Schmeiszwang <I/0> ","Wert: <wert> ","Laden ","","Zeit ","Farbverhalten ","New ","","RED"};
ogris 7:bd4b77580026 51 const char * const text_ln2[] = {"Anzeige ","Spielregeln ","Hellichkeit/Sp.Led ","Config. ","","Enable ","SP: 1 2 3 4 ","Speichern ","","Go Home first <I/0>","Sp.Led-Verhalten ","Speichern ","","Agro/Taktik ","Farb def ","Reset ","","BLU"};
ogris 7:bd4b77580026 52 const char * const text_ln3[] = {"Speicher ","Autoplay ","Wurfel ","Ofline/Com ",""," "," ","Reset ","","Ausfahrzwang <I/0> ","Andert: <wert> ","Reset ","","Enable/Manuell ","Hellichkeit ","Com ","","GRE"};
ogris 7:bd4b77580026 53 // xx/xx/xx/xx/Xx
ogris 7:bd4b77580026 54 // 4 3 2 1 0 //ebenen
ladner 1:0eaa7682f7e1 55
ogris 7:bd4b77580026 56 char selected[256];//Auf welchem Punkt er im Menü ist bzw zuletzt war
ogris 7:bd4b77580026 57 char depth = 0;//WEnn man nicht im Menü ist ist es n0; bei 1 in menu bei 2 in untermenu
ogris 7:bd4b77580026 58 int postion = 0;//Dafür brauche ich die Methode
ladner 5:f4db4cd245e3 59
ladner 0:e97a6a69fe4b 60
ladner 1:0eaa7682f7e1 61 int main()
ladner 0:e97a6a69fe4b 62 {
ladner 5:f4db4cd245e3 63 //Random.start();
ladner 1:0eaa7682f7e1 64 //Random.stop();
ladner 1:0eaa7682f7e1 65 //Random.read_us();
ladner 1:0eaa7682f7e1 66
ladner 1:0eaa7682f7e1 67 //Ticker:
ladner 1:0eaa7682f7e1 68 //.attach(&main,[sek]);
ladner 1:0eaa7682f7e1 69 //.attach_us(&main,[micro-sec]);
ladner 1:0eaa7682f7e1 70 //.detach();
ladner 1:0eaa7682f7e1 71
ladner 1:0eaa7682f7e1 72 //myled = 0xFFF;
ogris 7:bd4b77580026 73 port.baud(76800); //zu übertragung für den PC
ladner 1:0eaa7682f7e1 74 port.format(8,Serial::None, 1);
ladner 1:0eaa7682f7e1 75 port.attach(&Control);
ladner 4:2acb70f9cd22 76 /*
ladner 5:f4db4cd245e3 77 __disable_irq();
ladner 5:f4db4cd245e3 78 __enable_irq();
ladner 4:2acb70f9cd22 79 */
ladner 5:f4db4cd245e3 80 wait(0.01);
ogris 7:bd4b77580026 81 DD_A.mode(PullDown);//Schaltet indern einen Pulldown WIeder ein
ladner 5:f4db4cd245e3 82 DD_B.mode(PullDown);
ladner 5:f4db4cd245e3 83 DD_C.mode(PullDown);
ogris 7:bd4b77580026 84 DD_A.rise(&dreh);//Interrupt rudine zuweisen
ladner 5:f4db4cd245e3 85 DD_A.fall(&dreh);
ladner 5:f4db4cd245e3 86 DD_B.rise(&dreh);
ladner 5:f4db4cd245e3 87 DD_B.fall(&dreh);
ladner 5:f4db4cd245e3 88 DD_C.rise(&druck);
ladner 5:f4db4cd245e3 89 DD_C.fall(&druck);
ogris 7:bd4b77580026 90 DD_last = DD;//fürs entprellen
ladner 5:f4db4cd245e3 91 DD_d=DD_D;
ladner 1:0eaa7682f7e1 92
ladner 5:f4db4cd245e3 93 //text_ln0[0]="";
ladner 5:f4db4cd245e3 94 //port.printf("D%c%ctest\n",27,27);
ladner 5:f4db4cd245e3 95 print_menu();
ladner 1:0eaa7682f7e1 96
ladner 1:0eaa7682f7e1 97 while(1) ;
ladner 0:e97a6a69fe4b 98 }
ladner 5:f4db4cd245e3 99 void Control()
ladner 1:0eaa7682f7e1 100 {
ladner 5:f4db4cd245e3 101 while(port.readable ())
ladner 1:0eaa7682f7e1 102 {
ladner 5:f4db4cd245e3 103 char message = port.getc();
ladner 5:f4db4cd245e3 104 switch(message)
ladner 1:0eaa7682f7e1 105 {
ladner 5:f4db4cd245e3 106 case 'D':
ladner 5:f4db4cd245e3 107 port.printf("Ldepth:%d,selected[depth-1]:%d\n",depth,selected[depth-1]);
ladner 5:f4db4cd245e3 108 break;
ladner 5:f4db4cd245e3 109 case 'E':
ladner 5:f4db4cd245e3 110 exit();
ladner 5:f4db4cd245e3 111 break;
ladner 5:f4db4cd245e3 112 case 'F':
ladner 5:f4db4cd245e3 113 up();
ladner 5:f4db4cd245e3 114 break;
ladner 5:f4db4cd245e3 115 case 'G':
ladner 5:f4db4cd245e3 116 down();
ladner 5:f4db4cd245e3 117 break;
ladner 5:f4db4cd245e3 118 case 'H':
ladner 5:f4db4cd245e3 119 accept();
ladner 5:f4db4cd245e3 120 break;
ladner 5:f4db4cd245e3 121 case 'I':
ladner 5:f4db4cd245e3 122 depth=0;
ladner 5:f4db4cd245e3 123 selected[0]=0;
ladner 5:f4db4cd245e3 124 print_menu();
ladner 5:f4db4cd245e3 125 break;
ladner 1:0eaa7682f7e1 126 }
ladner 1:0eaa7682f7e1 127 }
ladner 1:0eaa7682f7e1 128 }
ladner 5:f4db4cd245e3 129 void dreh()
ladner 1:0eaa7682f7e1 130 {
ladner 5:f4db4cd245e3 131 char temp = DD;
ladner 5:f4db4cd245e3 132 if(DD_last == 3)
ladner 5:f4db4cd245e3 133 {
ladner 5:f4db4cd245e3 134 if(temp == 0)
ladner 5:f4db4cd245e3 135 DD_last = 0;
ladner 5:f4db4cd245e3 136 }
ladner 1:0eaa7682f7e1 137 else
ladner 1:0eaa7682f7e1 138 {
ladner 5:f4db4cd245e3 139 if(temp == 3)
ladner 5:f4db4cd245e3 140 {
ladner 5:f4db4cd245e3 141 if(DD_last == 1)
ladner 5:f4db4cd245e3 142 up();
ladner 5:f4db4cd245e3 143 if(DD_last == 2)
ladner 5:f4db4cd245e3 144 down();
ladner 5:f4db4cd245e3 145 }
ladner 5:f4db4cd245e3 146 DD_last = temp;
ladner 1:0eaa7682f7e1 147 }
ladner 0:e97a6a69fe4b 148 }
ladner 1:0eaa7682f7e1 149
ladner 5:f4db4cd245e3 150 void druck()
ladner 1:0eaa7682f7e1 151 {
ladner 5:f4db4cd245e3 152 if(DD_D==DD_d)
ladner 5:f4db4cd245e3 153 return;
ladner 5:f4db4cd245e3 154 else if(DD_D)
ladner 5:f4db4cd245e3 155 accept();
ladner 5:f4db4cd245e3 156 DD_d=DD_D;
ladner 0:e97a6a69fe4b 157 }
ladner 1:0eaa7682f7e1 158
ladner 5:f4db4cd245e3 159 void up()
ladner 0:e97a6a69fe4b 160 {
ladner 5:f4db4cd245e3 161 if(depth>0)
ladner 0:e97a6a69fe4b 162 {
ladner 5:f4db4cd245e3 163 if(selected[depth-1]<1)
ladner 5:f4db4cd245e3 164 selected[depth-1]=3;
ladner 5:f4db4cd245e3 165 else
ladner 5:f4db4cd245e3 166 selected[depth-1]--;
ladner 6:eda2b36d5be1 167 print_menu();
ladner 1:0eaa7682f7e1 168 }
ladner 1:0eaa7682f7e1 169 }
ladner 5:f4db4cd245e3 170 void down()
ladner 1:0eaa7682f7e1 171 {
ladner 5:f4db4cd245e3 172 if(depth>0)
ladner 1:0eaa7682f7e1 173 {
ladner 5:f4db4cd245e3 174 if(selected[depth-1]>2)
ladner 5:f4db4cd245e3 175 selected[depth-1]=0;
ladner 1:0eaa7682f7e1 176 else
ladner 5:f4db4cd245e3 177 selected[depth-1]++;
ladner 6:eda2b36d5be1 178 print_menu();
ladner 1:0eaa7682f7e1 179 }
ladner 5:f4db4cd245e3 180 }
ladner 5:f4db4cd245e3 181 void accept()
ladner 5:f4db4cd245e3 182 {
ladner 5:f4db4cd245e3 183 if(depth>0)
ladner 2:3a90b20958ff 184 {
ogris 7:bd4b77580026 185
ogris 7:bd4b77580026 186 if(depth<=3)
ladner 2:3a90b20958ff 187 {
ogris 7:bd4b77580026 188 if(selected[depth-1]==0)
ogris 7:bd4b77580026 189 exit();
ogris 7:bd4b77580026 190 else
ogris 7:bd4b77580026 191 {
ogris 7:bd4b77580026 192 selected[depth]=1;
ogris 7:bd4b77580026 193 depth++;
ogris 7:bd4b77580026 194 }
ladner 2:3a90b20958ff 195 }
ladner 0:e97a6a69fe4b 196 }
ladner 5:f4db4cd245e3 197 else
ladner 5:f4db4cd245e3 198 depth=1;
ladner 5:f4db4cd245e3 199 print_menu();
ladner 5:f4db4cd245e3 200 }
ogris 7:bd4b77580026 201 bool ausfuehren()
ogris 7:bd4b77580026 202 {
ogris 7:bd4b77580026 203
ogris 7:bd4b77580026 204 }
ladner 5:f4db4cd245e3 205 void exit()
ladner 5:f4db4cd245e3 206 {
ladner 5:f4db4cd245e3 207 if(depth>0)
ladner 0:e97a6a69fe4b 208 {
ladner 5:f4db4cd245e3 209 depth--;
ladner 5:f4db4cd245e3 210 if(depth<=3)
ladner 5:f4db4cd245e3 211 selected[depth]=0;
ladner 2:3a90b20958ff 212 }
ladner 5:f4db4cd245e3 213 print_menu();
ladner 5:f4db4cd245e3 214 }
ladner 5:f4db4cd245e3 215 void print_menu()
ladner 5:f4db4cd245e3 216 {
ladner 5:f4db4cd245e3 217 if(depth>0)
ladner 2:3a90b20958ff 218 {
ladner 5:f4db4cd245e3 219 if(depth>3)// " "
ladner 5:f4db4cd245e3 220 {
ladner 5:f4db4cd245e3 221 port.printf("D%c%c Custom \n",27,27);
ladner 5:f4db4cd245e3 222 lcd.locate(0,0);
ladner 5:f4db4cd245e3 223 lcd.printf(" Custom ");
ladner 5:f4db4cd245e3 224 }
ladner 5:f4db4cd245e3 225 else
ladner 0:e97a6a69fe4b 226 {
ladner 5:f4db4cd245e3 227 uint32_t _selected = 0;
ladner 5:f4db4cd245e3 228 for(char i = 0;i<depth-1;i++)
ladner 5:f4db4cd245e3 229 _selected = _selected|(selected[i]<<(i*2));
ladner 5:f4db4cd245e3 230 //port.printf("L_selected:%d\n",_selected);
ladner 5:f4db4cd245e3 231 lcd.locate(1,0);
ladner 5:f4db4cd245e3 232 lcd.printf(text_ln0[_selected]);
ladner 5:f4db4cd245e3 233 port.printf("D%c%c%s\n",28,27,text_ln0[_selected]);
ladner 5:f4db4cd245e3 234 lcd.locate(1,1);
ladner 5:f4db4cd245e3 235 lcd.printf(text_ln1[_selected]);
ladner 5:f4db4cd245e3 236 port.printf("D%c%c%s\n",28,28,text_ln1[_selected]);
ladner 5:f4db4cd245e3 237 lcd.locate(1,2);
ladner 5:f4db4cd245e3 238 lcd.printf(text_ln2[_selected]);
ladner 5:f4db4cd245e3 239 port.printf("D%c%c%s\n",28,29,text_ln2[_selected]);
ladner 5:f4db4cd245e3 240 lcd.locate(1,3);
ladner 5:f4db4cd245e3 241 lcd.printf(text_ln3[_selected]);
ladner 5:f4db4cd245e3 242 port.printf("D%c%c%s\n",28,30,text_ln3[_selected]);
ladner 5:f4db4cd245e3 243
ladner 5:f4db4cd245e3 244 for(char i=0;i<4;i++)
ladner 1:0eaa7682f7e1 245 {
ladner 5:f4db4cd245e3 246 lcd.locate(0,i);
ogris 7:bd4b77580026 247 if(selected[depth-1]==i)
ladner 1:0eaa7682f7e1 248 {
ladner 5:f4db4cd245e3 249 if(i==0)
ladner 1:0eaa7682f7e1 250 {
ladner 5:f4db4cd245e3 251 port.printf("D%c%c<\n",27,i+27);
ladner 5:f4db4cd245e3 252 lcd.putc('<');
ladner 1:0eaa7682f7e1 253 }
ladner 5:f4db4cd245e3 254 else
ladner 5:f4db4cd245e3 255 {
ladner 5:f4db4cd245e3 256 port.printf("D%c%c>\n",27,i+27);
ladner 5:f4db4cd245e3 257 lcd.putc('>');
ladner 5:f4db4cd245e3 258 }
ladner 1:0eaa7682f7e1 259 }
ladner 2:3a90b20958ff 260 else
ladner 5:f4db4cd245e3 261 {
ladner 5:f4db4cd245e3 262 port.printf("D%c%c \n",27,i+27);
ladner 5:f4db4cd245e3 263 lcd.putc(' ');
ladner 2:3a90b20958ff 264 }
ladner 1:0eaa7682f7e1 265 }
ladner 1:0eaa7682f7e1 266 }
ladner 1:0eaa7682f7e1 267 }
ladner 1:0eaa7682f7e1 268 else
ladner 1:0eaa7682f7e1 269 {
ladner 5:f4db4cd245e3 270 lcd.cls();
ladner 5:f4db4cd245e3 271 lcd.printf(" Spiel lauft...");
ladner 5:f4db4cd245e3 272 lcd.locate(0,3);
ladner 5:f4db4cd245e3 273 lcd.printf("12345678901234567890");
ladner 5:f4db4cd245e3 274 port.printf("D%c%c Spiel lauft... \n",27,27);
ladner 5:f4db4cd245e3 275 port.printf("D%c%c \n",27,28);
ladner 5:f4db4cd245e3 276 port.printf("D%c%c \n",27,29);
ladner 5:f4db4cd245e3 277 port.printf("D%c%c12345678901234567890\n",27,30);
ladner 1:0eaa7682f7e1 278 }
ladner 1:0eaa7682f7e1 279 }
ladner 1:0eaa7682f7e1 280