Dependencies:   TextLCD mbed

Fork of Mbed-Mensch-1 by Projekte_werkstatt

Committer:
ladner
Date:
Fri Mar 18 13:18:27 2016 +0000
Revision:
7:903a6653a43b
Parent:
6:eda2b36d5be1

        

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 0:e97a6a69fe4b 4
ladner 0:e97a6a69fe4b 5 I2C i2c(P0_5,P0_4);
ladner 0:e97a6a69fe4b 6 Serial port(P0_19,P0_18);
ladner 0:e97a6a69fe4b 7 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 8 AnalogIn ldr(P0_12);
ladner 0:e97a6a69fe4b 9 AnalogIn poti(P0_11);
ladner 1:0eaa7682f7e1 10 //BusOut rgb(P0_9,P1_15,P0_21);
ladner 1:0eaa7682f7e1 11
ladner 1:0eaa7682f7e1 12 RGBOut rgb(P0_21,P0_9,P1_15);
ladner 7:903a6653a43b 13 //Old: P0_13
ladner 7:903a6653a43b 14 LedOut Feld (P1_23);//P1_23 ->14
ladner 7:903a6653a43b 15 LedOut Home (P1_20);//P1_20->13
ladner 7:903a6653a43b 16 LedOut Dice (P1_21);//P1_21->12
ladner 7:903a6653a43b 17 //-> Würfel (ersten 3 LED in Binär-4. LED für 7. Zustand), Spieler, Referenz(auch RGB am board)
ladner 1:0eaa7682f7e1 18
ladner 1:0eaa7682f7e1 19 InterruptIn Button0(P0_1);
ladner 0:e97a6a69fe4b 20 InterruptIn Button1(P1_16);
ladner 0:e97a6a69fe4b 21 InterruptIn Button2(P0_23);
ladner 1:0eaa7682f7e1 22 InterruptIn Button3(P0_10);
ladner 1:0eaa7682f7e1 23 InterruptIn Button4(P0_15);
ladner 7:903a6653a43b 24 BusIn btn(P1_16,P0_23,P0_10,P0_15,P0_1);
ladner 7:903a6653a43b 25 //Dice
ladner 7:903a6653a43b 26 Timer Random;
ladner 7:903a6653a43b 27 Timer RandomDice;
ladner 7:903a6653a43b 28
ladner 7:903a6653a43b 29 Ticker DiceAnim;
ladner 7:903a6653a43b 30 void DiceRun();
ladner 7:903a6653a43b 31 void setDice(char number);
ladner 7:903a6653a43b 32 void DicePrint();
ladner 7:903a6653a43b 33 void DiceCal(); //umrechning des 7.Zustands in eine Zahl zwischen 1 & 6
ladner 7:903a6653a43b 34 char dicePos = 0;
ladner 7:903a6653a43b 35 char diceEn = 0;
ladner 7:903a6653a43b 36 char diceTick = 0;
ladner 7:903a6653a43b 37 char diceNum = 0;
ladner 7:903a6653a43b 38 int16_t diceDecode [7]= {0x1,0x88,0x89,0xAA,0xAB,0x1BA,0x154};
ladner 7:903a6653a43b 39 //Game
ladner 7:903a6653a43b 40 #define Feldgrose 10
ladner 7:903a6653a43b 41 #define Spieler 4
ladner 7:903a6653a43b 42 #define Steine 4
ladner 7:903a6653a43b 43
ladner 7:903a6653a43b 44 char PlayPos[Spieler*Steine]; //Zahl zwischen 0 & 47 ((0xC0 -> Spieler)>>2 / 0x03 -> Stein)
ladner 7:903a6653a43b 45 char Start[Spieler*Steine]; //Enthält den Index für PlayPos (nur das 'normale' Spielfend)
ladner 7:903a6653a43b 46 char Ziel[Spieler*Steine]; //Enthält den Index für PlayPos (nur das 'normale' Spielfend)
ladner 7:903a6653a43b 47 char Drann; //Spieler, der drann ist
ladner 7:903a6653a43b 48 char count; //Für 6er & mehrfaches Würfeln beim Ansetzen
ladner 7:903a6653a43b 49 char last[Spieler]; //zuletzt benutzte Spielstein, der zuletzt benutzt wurde
ladner 7:903a6653a43b 50 char moglich[Steine];
ladner 7:903a6653a43b 51 char selected; //der aktuell ausgewählte Zug
ladner 7:903a6653a43b 52 char Field[Spieler*Feldgrose]; //Enthält den Index für PlayPos (nur das 'normale' Spielfend)
ladner 7:903a6653a43b 53 void FieldPrint(); //Ausgabe auf Com-Port
ladner 7:903a6653a43b 54 void FieldGenerate(); //Berechnung von PlayPos auf Start, Ziel, Field
ladner 7:903a6653a43b 55 void FeldPrint(); //Ausgabe von Field auf den Led-Streifen (Feld) der Farben
ladner 7:903a6653a43b 56 void GameCal();
ladner 7:903a6653a43b 57 Ticker MoveAnim;
ladner 7:903a6653a43b 58 void MoveRun();
ladner 7:903a6653a43b 59 char MoveShow;
ladner 7:903a6653a43b 60 void ColorPrint(uint32_t color);
ladner 7:903a6653a43b 61 //Animations
ladner 7:903a6653a43b 62 char AnimField[Spieler*Feldgrose];
ladner 7:903a6653a43b 63 char AnimStart[Spieler*Steine];
ladner 7:903a6653a43b 64 char AnimZiel[Spieler*Steine];
ladner 7:903a6653a43b 65 char AnimPos[Spieler*Steine];
ladner 7:903a6653a43b 66 char AnimDo; //Feld_Animieren,Start Animieren, Ziel Animierenw
ladner 7:903a6653a43b 67 void AnimCal();
ladner 7:903a6653a43b 68 //Core Interactions
ladner 7:903a6653a43b 69 void reset();
ladner 7:903a6653a43b 70 void MoveDo();
ladner 7:903a6653a43b 71 void moveNext();
ladner 7:903a6653a43b 72 void moveLast();
ladner 7:903a6653a43b 73 void DiceStart();
ladner 7:903a6653a43b 74 void DiceStop();
ladner 7:903a6653a43b 75 //Button entprellung (funktioniert nicht...)
ladner 7:903a6653a43b 76 void btn0();
ladner 7:903a6653a43b 77 void btn1();
ladner 7:903a6653a43b 78 void btn2();
ladner 7:903a6653a43b 79 void btn3();
ladner 7:903a6653a43b 80 void btn4();
ladner 7:903a6653a43b 81 char btnLast;
ladner 7:903a6653a43b 82 //Farben
ladner 7:903a6653a43b 83 uint32_t Farben[Spieler]; //Berechnete Hellichkeiten der Speiler fertig zur Ausgabe...
ladner 7:903a6653a43b 84 uint32_t Background = 0; //Hintergrund (Leerfeld)
ladner 7:903a6653a43b 85 uint32_t DiseC = 0x00FF00; //Würfelfarbe
ladner 7:903a6653a43b 86 void ColorPrint(uint32_t color); //vorher den Header senden (manuell...)
ladner 7:903a6653a43b 87
ladner 7:903a6653a43b 88
ladner 7:903a6653a43b 89 TextLCD lcd(p21, p22, p26, p25, p24, p23,TextLCD::LCD20x4);
ladner 0:e97a6a69fe4b 90
ladner 5:f4db4cd245e3 91 InterruptIn DD_A(P0_22);//20
ladner 5:f4db4cd245e3 92 InterruptIn DD_B(P0_16);//19
ladner 5:f4db4cd245e3 93 InterruptIn DD_C(P0_14);//18
ladner 5:f4db4cd245e3 94 DigitalIn DD_D(P0_14);
ladner 5:f4db4cd245e3 95 BusIn DD(P0_22,P0_16);
ladner 5:f4db4cd245e3 96 //Timeout DD_reset;
ladner 5:f4db4cd245e3 97 char DD_last;
ladner 5:f4db4cd245e3 98 char DD_d;
ladner 1:0eaa7682f7e1 99
ladner 5:f4db4cd245e3 100 void dreh();
ladner 5:f4db4cd245e3 101 void druck();
ladner 1:0eaa7682f7e1 102
ladner 5:f4db4cd245e3 103 void up();
ladner 5:f4db4cd245e3 104 void down();
ladner 5:f4db4cd245e3 105 void accept();
ladner 5:f4db4cd245e3 106 void exit();
ladner 5:f4db4cd245e3 107 void print_menu();
ladner 7:903a6653a43b 108 void print_pos();
ladner 7:903a6653a43b 109 void print_default();
ladner 7:903a6653a43b 110 void posUpdate();
ladner 5:f4db4cd245e3 111 void Control();
ladner 7:903a6653a43b 112 char ausfuehren();
ladner 1:0eaa7682f7e1 113
ladner 5:f4db4cd245e3 114 //string test ("");
ladner 5:f4db4cd245e3 115 // "1234567890123456789","1234567890123456789","1234567890123456789","1234567890123456789", ,"1234567890123456789","1234567890123456789","1234567890123456789",
ladner 5:f4db4cd245e3 116 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: "};
ladner 7:903a6653a43b 117 const char * const text_ln1[] = {"Spiel ","7.Zustand ","Farben ","Spiel ","","Disable ","Hoffentlich ","Laden ","","Smeiszwang <I/0> ","Wert: <wert> ","Laden ","","Zeit ","Farbverhalten ","New "};
ladner 7:903a6653a43b 118 const char * const text_ln2[] = {"Anzeige ","Spielregeln ","Hellichkeit/Sp.Led ","Config. ","","kleinstmoglich "," 1 2 3 4 ","Speichern ","","Go Home first <I/0>","Sp.Led-Verhalten ","Speichern ","","Agro/Taktik ","Farb def ","Reset "};
ladner 5:f4db4cd245e3 119 const char * const text_ln3[] = {"Speicher ","Autoplay ","Wurfel ","Ofline/Com ","","grostmoglich "," ","Reset ","","Ausfahrzwang <I/0> ","Andert: <wert> ","Reset ","","Enable/Manuell ","Hellichkeit ","Com "};
ladner 7:903a6653a43b 120 char textPos[] = {0x0 ,0x1 ,0x2 ,0x3 ,0x4,0x5 ,0x6 ,0x7 ,0x8,0x9 ,0xA ,0xB ,0xC,0xD ,0xE ,0xF ,0x10,0x11};
ladner 1:0eaa7682f7e1 121
ladner 5:f4db4cd245e3 122
ladner 7:903a6653a43b 123 char VHS = 0;
ladner 7:903a6653a43b 124 char mSelected[256];
ladner 5:f4db4cd245e3 125 char depth = 0;
ladner 7:903a6653a43b 126 uint32_t postion = 0;//Dafür brauche ich die Methode
ladner 7:903a6653a43b 127
ladner 0:e97a6a69fe4b 128
ladner 1:0eaa7682f7e1 129 int main()
ladner 0:e97a6a69fe4b 130 {
ladner 5:f4db4cd245e3 131 //Random.start();
ladner 1:0eaa7682f7e1 132 //Random.stop();
ladner 1:0eaa7682f7e1 133 //Random.read_us();
ladner 1:0eaa7682f7e1 134
ladner 1:0eaa7682f7e1 135 //Ticker:
ladner 1:0eaa7682f7e1 136 //.attach(&main,[sek]);
ladner 1:0eaa7682f7e1 137 //.attach_us(&main,[micro-sec]);
ladner 1:0eaa7682f7e1 138 //.detach();
ladner 1:0eaa7682f7e1 139
ladner 1:0eaa7682f7e1 140 //myled = 0xFFF;
ladner 1:0eaa7682f7e1 141 port.baud(76800);
ladner 1:0eaa7682f7e1 142 port.format(8,Serial::None, 1);
ladner 1:0eaa7682f7e1 143 port.attach(&Control);
ladner 4:2acb70f9cd22 144 /*
ladner 5:f4db4cd245e3 145 __disable_irq();
ladner 5:f4db4cd245e3 146 __enable_irq();
ladner 4:2acb70f9cd22 147 */
ladner 7:903a6653a43b 148
ladner 5:f4db4cd245e3 149 DD_A.mode(PullDown);
ladner 5:f4db4cd245e3 150 DD_B.mode(PullDown);
ladner 5:f4db4cd245e3 151 DD_C.mode(PullDown);
ladner 7:903a6653a43b 152 wait(0.01);
ladner 5:f4db4cd245e3 153 DD_A.rise(&dreh);
ladner 5:f4db4cd245e3 154 DD_A.fall(&dreh);
ladner 5:f4db4cd245e3 155 DD_B.rise(&dreh);
ladner 5:f4db4cd245e3 156 DD_B.fall(&dreh);
ladner 5:f4db4cd245e3 157 DD_C.rise(&druck);
ladner 5:f4db4cd245e3 158 DD_C.fall(&druck);
ladner 5:f4db4cd245e3 159 DD_last = DD;
ladner 5:f4db4cd245e3 160 DD_d=DD_D;
ladner 1:0eaa7682f7e1 161
ladner 5:f4db4cd245e3 162 //text_ln0[0]="";
ladner 5:f4db4cd245e3 163 //port.printf("D%c%ctest\n",27,27);
ladner 7:903a6653a43b 164 print_default();
ladner 1:0eaa7682f7e1 165
ladner 1:0eaa7682f7e1 166 while(1) ;
ladner 0:e97a6a69fe4b 167 }
ladner 7:903a6653a43b 168 void print_default()
ladner 7:903a6653a43b 169 {
ladner 7:903a6653a43b 170 lcd.cls();
ladner 7:903a6653a43b 171 lcd.printf(" Spiel lauft...");
ladner 7:903a6653a43b 172 lcd.locate(0,3);
ladner 7:903a6653a43b 173 lcd.printf("12345678901234567890");
ladner 7:903a6653a43b 174 port.printf("D%c%c Spiel lauft... \n",27,27);
ladner 7:903a6653a43b 175 port.printf("D%c%c \n",27,28);
ladner 7:903a6653a43b 176 port.printf("D%c%c \n",27,29);
ladner 7:903a6653a43b 177 port.printf("D%c%c12345678901234567890\n",27,30);
ladner 7:903a6653a43b 178 }
ladner 5:f4db4cd245e3 179 void Control()
ladner 1:0eaa7682f7e1 180 {
ladner 5:f4db4cd245e3 181 while(port.readable ())
ladner 1:0eaa7682f7e1 182 {
ladner 5:f4db4cd245e3 183 char message = port.getc();
ladner 5:f4db4cd245e3 184 switch(message)
ladner 1:0eaa7682f7e1 185 {
ladner 5:f4db4cd245e3 186 case 'D':
ladner 7:903a6653a43b 187 port.printf("Ldepth:%d,mSelected[depth-1]:%d\n",depth,mSelected[depth-1]);
ladner 5:f4db4cd245e3 188 break;
ladner 5:f4db4cd245e3 189 case 'E':
ladner 5:f4db4cd245e3 190 exit();
ladner 5:f4db4cd245e3 191 break;
ladner 5:f4db4cd245e3 192 case 'F':
ladner 5:f4db4cd245e3 193 up();
ladner 5:f4db4cd245e3 194 break;
ladner 5:f4db4cd245e3 195 case 'G':
ladner 5:f4db4cd245e3 196 down();
ladner 5:f4db4cd245e3 197 break;
ladner 5:f4db4cd245e3 198 case 'H':
ladner 5:f4db4cd245e3 199 accept();
ladner 5:f4db4cd245e3 200 break;
ladner 5:f4db4cd245e3 201 case 'I':
ladner 5:f4db4cd245e3 202 depth=0;
ladner 7:903a6653a43b 203 mSelected[0]=0;
ladner 5:f4db4cd245e3 204 print_menu();
ladner 5:f4db4cd245e3 205 break;
ladner 1:0eaa7682f7e1 206 }
ladner 1:0eaa7682f7e1 207 }
ladner 1:0eaa7682f7e1 208 }
ladner 5:f4db4cd245e3 209 void dreh()
ladner 1:0eaa7682f7e1 210 {
ladner 5:f4db4cd245e3 211 char temp = DD;
ladner 5:f4db4cd245e3 212 if(DD_last == 3)
ladner 5:f4db4cd245e3 213 {
ladner 5:f4db4cd245e3 214 if(temp == 0)
ladner 5:f4db4cd245e3 215 DD_last = 0;
ladner 5:f4db4cd245e3 216 }
ladner 1:0eaa7682f7e1 217 else
ladner 1:0eaa7682f7e1 218 {
ladner 5:f4db4cd245e3 219 if(temp == 3)
ladner 5:f4db4cd245e3 220 {
ladner 5:f4db4cd245e3 221 if(DD_last == 1)
ladner 5:f4db4cd245e3 222 up();
ladner 5:f4db4cd245e3 223 if(DD_last == 2)
ladner 5:f4db4cd245e3 224 down();
ladner 5:f4db4cd245e3 225 }
ladner 5:f4db4cd245e3 226 DD_last = temp;
ladner 1:0eaa7682f7e1 227 }
ladner 0:e97a6a69fe4b 228 }
ladner 7:903a6653a43b 229 char ausfuehren()
ladner 7:903a6653a43b 230 {
ladner 7:903a6653a43b 231 char out = 1;
ladner 7:903a6653a43b 232 switch (postion)
ladner 7:903a6653a43b 233 {
ladner 7:903a6653a43b 234 case 0x5:
ladner 7:903a6653a43b 235 break;
ladner 7:903a6653a43b 236 default:
ladner 7:903a6653a43b 237 break;
ladner 7:903a6653a43b 238 }
ladner 7:903a6653a43b 239 return out;
ladner 7:903a6653a43b 240 }
ladner 5:f4db4cd245e3 241 void druck()
ladner 1:0eaa7682f7e1 242 {
ladner 5:f4db4cd245e3 243 if(DD_D==DD_d)
ladner 5:f4db4cd245e3 244 return;
ladner 5:f4db4cd245e3 245 else if(DD_D)
ladner 5:f4db4cd245e3 246 accept();
ladner 5:f4db4cd245e3 247 DD_d=DD_D;
ladner 0:e97a6a69fe4b 248 }
ladner 7:903a6653a43b 249 void posUpdate()
ladner 7:903a6653a43b 250 {
ladner 7:903a6653a43b 251 postion = 0;
ladner 7:903a6653a43b 252 for(char i = 0;i<depth-1;i++)
ladner 7:903a6653a43b 253 postion = postion|(mSelected[i]<<(i*2));
ladner 7:903a6653a43b 254 }
ladner 5:f4db4cd245e3 255 void up()
ladner 0:e97a6a69fe4b 256 {
ladner 5:f4db4cd245e3 257 if(depth>0)
ladner 0:e97a6a69fe4b 258 {
ladner 7:903a6653a43b 259 if(mSelected[depth-1]<1)
ladner 7:903a6653a43b 260 {
ladner 7:903a6653a43b 261 if(VHS==0)
ladner 7:903a6653a43b 262 mSelected[depth-1]=3;
ladner 7:903a6653a43b 263 else if(VHS==1)
ladner 7:903a6653a43b 264 mSelected[depth-1]=4;
ladner 7:903a6653a43b 265 else
ladner 7:903a6653a43b 266 mSelected[depth-1]=VHS;
ladner 7:903a6653a43b 267 }
ladner 5:f4db4cd245e3 268 else
ladner 7:903a6653a43b 269 mSelected[depth-1]--;
ladner 7:903a6653a43b 270 print_pos();
ladner 1:0eaa7682f7e1 271 }
ladner 1:0eaa7682f7e1 272 }
ladner 5:f4db4cd245e3 273 void down()
ladner 1:0eaa7682f7e1 274 {
ladner 5:f4db4cd245e3 275 if(depth>0)
ladner 1:0eaa7682f7e1 276 {
ladner 7:903a6653a43b 277 char temp=3;
ladner 7:903a6653a43b 278 if(VHS==0)
ladner 7:903a6653a43b 279 temp=3;
ladner 7:903a6653a43b 280 else if(VHS==1)
ladner 7:903a6653a43b 281 temp=4;
ladner 1:0eaa7682f7e1 282 else
ladner 7:903a6653a43b 283 temp=VHS;
ladner 7:903a6653a43b 284 if(mSelected[depth-1]>(temp-1))
ladner 7:903a6653a43b 285 mSelected[depth-1]=0;
ladner 7:903a6653a43b 286 else
ladner 7:903a6653a43b 287 mSelected[depth-1]++;
ladner 7:903a6653a43b 288 print_pos();
ladner 1:0eaa7682f7e1 289 }
ladner 5:f4db4cd245e3 290 }
ladner 5:f4db4cd245e3 291 void accept()
ladner 5:f4db4cd245e3 292 {
ladner 5:f4db4cd245e3 293 if(depth>0)
ladner 2:3a90b20958ff 294 {
ladner 7:903a6653a43b 295 postion = 0;
ladner 7:903a6653a43b 296 for(char i = 0;i<depth;i++)
ladner 7:903a6653a43b 297 postion = postion|(mSelected[i]<<(i*2));
ladner 7:903a6653a43b 298 char temp = ausfuhren();
ladner 7:903a6653a43b 299 if(temp>0)
ladner 2:3a90b20958ff 300 {
ladner 7:903a6653a43b 301 if(mSelected[depth-1]==0)
ladner 7:903a6653a43b 302 {
ladner 7:903a6653a43b 303 depth--;//Exit()
ladner 7:903a6653a43b 304 mSelected[depth]=0;
ladner 7:903a6653a43b 305 }
ladner 5:f4db4cd245e3 306 else
ladner 2:3a90b20958ff 307 {
ladner 7:903a6653a43b 308 mSelected[depth]=1;
ladner 5:f4db4cd245e3 309 depth++;
ladner 2:3a90b20958ff 310 }
ladner 2:3a90b20958ff 311 }
ladner 0:e97a6a69fe4b 312 }
ladner 5:f4db4cd245e3 313 else
ladner 5:f4db4cd245e3 314 depth=1;
ladner 7:903a6653a43b 315 posUpdate();
ladner 7:903a6653a43b 316 if(postion==0x6)
ladner 7:903a6653a43b 317 VHS=1;
ladner 7:903a6653a43b 318 else
ladner 7:903a6653a43b 319 VHS=0;
ladner 7:903a6653a43b 320 if(depth>0)
ladner 7:903a6653a43b 321 {
ladner 7:903a6653a43b 322 print_menu();
ladner 7:903a6653a43b 323 print_pos();
ladner 7:903a6653a43b 324 }
ladner 7:903a6653a43b 325 else
ladner 7:903a6653a43b 326 print_default();
ladner 5:f4db4cd245e3 327 }
ladner 5:f4db4cd245e3 328 void exit()
ladner 5:f4db4cd245e3 329 {
ladner 5:f4db4cd245e3 330 if(depth>0)
ladner 0:e97a6a69fe4b 331 {
ladner 5:f4db4cd245e3 332 depth--;
ladner 7:903a6653a43b 333 mSelected[depth]=0;
ladner 2:3a90b20958ff 334 }
ladner 7:903a6653a43b 335 posUpdate();
ladner 7:903a6653a43b 336 if(postion==0x6)
ladner 7:903a6653a43b 337 VHS=1;
ladner 7:903a6653a43b 338 else
ladner 7:903a6653a43b 339 VHS=0;
ladner 7:903a6653a43b 340 if(depth>0)
ladner 7:903a6653a43b 341 {
ladner 7:903a6653a43b 342 print_menu();
ladner 7:903a6653a43b 343 print_pos();
ladner 7:903a6653a43b 344 }
ladner 7:903a6653a43b 345 else
ladner 7:903a6653a43b 346 print_default();
ladner 5:f4db4cd245e3 347 }
ladner 5:f4db4cd245e3 348 void print_menu()
ladner 5:f4db4cd245e3 349 {
ladner 7:903a6653a43b 350 port.printf("DR\n");
ladner 7:903a6653a43b 351 lcd.cls();
ladner 7:903a6653a43b 352 lcd.locate(1,0);
ladner 7:903a6653a43b 353 lcd.printf(text_ln0[textPos[postion]]);
ladner 7:903a6653a43b 354 port.printf("D%c%c%s\n",28,27,text_ln0[textPos[postion]]);
ladner 7:903a6653a43b 355 lcd.locate(1,1);
ladner 7:903a6653a43b 356 lcd.printf(text_ln1[textPos[postion]]);
ladner 7:903a6653a43b 357 port.printf("D%c%c%s\n",28,28,text_ln1[textPos[postion]]);
ladner 7:903a6653a43b 358 lcd.locate(1,2);
ladner 7:903a6653a43b 359 lcd.printf(text_ln2[textPos[postion]]);
ladner 7:903a6653a43b 360 port.printf("D%c%c%s\n",28,29,text_ln2[textPos[postion]]);
ladner 7:903a6653a43b 361 lcd.locate(1,3);
ladner 7:903a6653a43b 362 lcd.printf(text_ln3[textPos[postion]]);
ladner 7:903a6653a43b 363 port.printf("D%c%c%s\n",28,30,text_ln3[textPos[postion]]);
ladner 7:903a6653a43b 364 }
ladner 7:903a6653a43b 365 void print_pos()
ladner 7:903a6653a43b 366 {
ladner 7:903a6653a43b 367 if (VHS==1)
ladner 2:3a90b20958ff 368 {
ladner 7:903a6653a43b 369 lcd.locate(0,3);
ladner 7:903a6653a43b 370 // "--------------------"
ladner 7:903a6653a43b 371 lcd.printf(" ");
ladner 7:903a6653a43b 372 port.printf("D%c%c \n",27,27+3);
ladner 7:903a6653a43b 373
ladner 7:903a6653a43b 374 lcd.locate(0,0);
ladner 7:903a6653a43b 375 if(mSelected[depth-1]==0)
ladner 5:f4db4cd245e3 376 {
ladner 7:903a6653a43b 377 port.printf("D%c%c<\n",27,27);
ladner 7:903a6653a43b 378 lcd.putc('<');
ladner 5:f4db4cd245e3 379 }
ladner 5:f4db4cd245e3 380 else
ladner 0:e97a6a69fe4b 381 {
ladner 7:903a6653a43b 382 port.printf("D%c%c \n",27,27);
ladner 7:903a6653a43b 383 lcd.putc(' ');
ladner 7:903a6653a43b 384
ladner 7:903a6653a43b 385 lcd.locate(4*mSelected[depth-1],3);
ladner 7:903a6653a43b 386 lcd.putc('^');
ladner 7:903a6653a43b 387 port.printf("D%c%c^\n",27+4*mSelected[depth-1],27+3);
ladner 1:0eaa7682f7e1 388 }
ladner 1:0eaa7682f7e1 389 }
ladner 1:0eaa7682f7e1 390 else
ladner 1:0eaa7682f7e1 391 {
ladner 7:903a6653a43b 392 for(char i=0;i<4;i++)
ladner 7:903a6653a43b 393 {
ladner 7:903a6653a43b 394 lcd.locate(0,i);
ladner 7:903a6653a43b 395 if((mSelected[depth-1]+0)==i)
ladner 7:903a6653a43b 396 {
ladner 7:903a6653a43b 397 if(i==0)
ladner 7:903a6653a43b 398 {
ladner 7:903a6653a43b 399 port.printf("D%c%c<\n",27,i+27);
ladner 7:903a6653a43b 400 lcd.putc('<');
ladner 7:903a6653a43b 401 }
ladner 7:903a6653a43b 402 else
ladner 7:903a6653a43b 403 {
ladner 7:903a6653a43b 404 port.printf("D%c%c>\n",27,i+27);
ladner 7:903a6653a43b 405 lcd.putc('>');
ladner 7:903a6653a43b 406 }
ladner 7:903a6653a43b 407 }
ladner 7:903a6653a43b 408 else
ladner 7:903a6653a43b 409 {
ladner 7:903a6653a43b 410 port.printf("D%c%c \n",27,i+27);
ladner 7:903a6653a43b 411 lcd.putc(' ');
ladner 7:903a6653a43b 412 }
ladner 7:903a6653a43b 413 }
ladner 1:0eaa7682f7e1 414 }
ladner 1:0eaa7682f7e1 415 }