a
Dependencies: Led-libary TextLCD mbed
Fork of Mbed-Mensch-8 by
Diff: main.cpp
- Revision:
- 22:2d75e7ec402f
- Parent:
- 21:374e9aed07d9
- Child:
- 23:fd15b2f8cf08
diff -r 374e9aed07d9 -r 2d75e7ec402f main.cpp --- a/main.cpp Fri Apr 01 16:04:34 2016 +0000 +++ b/main.cpp Fri Apr 08 06:59:10 2016 +0000 @@ -110,7 +110,8 @@ //Farben uint32_t Farben[Spieler]; //Berechnete Hellichkeiten der Speiler fertig zur Ausgabe... uint32_t Background = 0; //Hintergrund (Leerfeld) -uint32_t DiseC = 0x00FF00; //Würfelfarbe +uint32_t DiceC = 0x00FF00; //Würfelfarbe +uint32_t TestC = 0xFFFFFF; //TestFarbe void ColorPrint(uint32_t color); //vorher den Header senden (manuell...) char DD_last; @@ -349,21 +350,21 @@ Farben[2]=0x0000FF;//Grun Farben[3]=0x00FFFF;//Gelb Background = 0; //Schwarz - DiseC = 0x00FF00; //Rot + DiceC = 0x00FF00; //Rot */ Farben[0]=0x000800;//Rot Farben[1]=0x080000;//Blau Farben[2]=0x000008;//Grun Farben[3]=0x000808;//Gelb Background = 0; //Schwarz - DiseC = 0x000800; //Rot + DiceC = 0x000800; //Rot /* Farben[0]=0xFFFFFF;//Weiß Farben[1]=0xFFFFFF;//Weiß Farben[2]=0xFFFFFF;//Weiß Farben[3]=0xFFFFFF;//Weiß Background = 0xFFFFFF;//Weiß - DiseC = 0xFFFFFF; //Weiß + DiceC = 0xFFFFFF; //Weiß */ __disable_irq(); @@ -496,6 +497,16 @@ myled=(myled&0xFF0); myled=(myled&0x0FF)|(0x100<<Drann); port.printf("W%c%c\n",27,27); + __disable_irq(); + for (char i = 0; i < 9; i++) + Dice.WriteLed(Background); + for (char i = 0; i < 4; i++) + if(Drann==i) + Dice.WriteLed(Farben[i]); + else + Dice.WriteLed(Background); + Dice.WriteLed(Background); + __enable_irq(); break; case 1: //Animation char dice_help = 0xFF-(1<<dicePos); @@ -503,24 +514,71 @@ //myled = (myled&0xF)|(dice_help<<4); port.printf("W%c%c\n" , 27 + diceTick+((dice_help&0x1F)<<1),27 + ((dice_help& 0xE0)>>5)); + __disable_irq(); + if(diceTick) + Dice.WriteLed(DiceC); + else + Dice.WriteLed(Background); + for (char i = 0; i < 8; i++) + if(dice_help&(1<<i)) + Dice.WriteLed(DiceC); + else + Dice.WriteLed(Background); + __enable_irq(); break; case 2://Case 3 = Case 2 ->Anzeigen myled=(myled&0xFF0)|(diceNum); //myled=myled|0xFF0; port.printf("W%c%c\n" , 27 +(diceDecode[diceNum-1]&0x3F),27 + ((diceDecode[diceNum-1]&0x1C0)>>6)); + __disable_irq(); + for (char i = 0; i < 9; i++) + if(diceDecode[diceNum-1]&(1<<i)) + Dice.WriteLed(DiceC); + else + Dice.WriteLed(Background); + __enable_irq(); break; case 3: myled=(myled&0xFF0)|(diceNum)|8; //myled=myled|0xFF0; port.printf("W%c%c\n" , 27 +(diceDecode[diceNum-1]&0x3F),27 + ((diceDecode[diceNum-1]&0x1C0)>>6)); + __disable_irq(); + for (char i = 0; i < 9; i++) + if(diceDecode[diceNum-1]&(1<<i)) + Dice.WriteLed(DiceC); + else + Dice.WriteLed(Background); + __enable_irq(); break; - case 4://Spiel beendet! Animation? + case 4://Spiel beendet! myled=(myled&0xFF0); port.printf("W%c%c\n",27,27); + __disable_irq(); + for (char i = 0; i < 14; i++) + Dice.WriteLed(Background); + __enable_irq(); break; case 5://Menu + if(diceTick) + port.printf("W%c%c\n" , 27 +(diceDecode[6]&0x3F),27 + ((diceDecode[6]&0x1C0)>>6)); + else + port.printf("W%c%c\n",27,27); + __disable_irq(); + if(diceTick) + for (char i = 0; i < 9; i++) + if(diceDecode[6]&(1<<i)) + Dice.WriteLed(DiceC); + else + Dice.WriteLed(Background); + else + for (char i = 0; i < 9; i++) + Dice.WriteLed(Background); + for (char i = 0; i < 4; i++) + Dice.WriteLed(Background); + Dice.WriteLed(TestC); + __enable_irq(); break; } } @@ -1286,6 +1344,8 @@ diceEn=5; DicePrint(); //StartMenu-Anim + diceTick=0; + DiceAnim.attach(&DiceRun,0.3); } posUpdate(); port.printf("Lpostion:0x%x\n",postion); @@ -1307,6 +1367,12 @@ } if(depth==0) { + DiceAnim.detach(); + diceTick=0; + char temp = diceEn; + diceEn=0; + DicePrint(); + diceEn=temp; if(mDiceEn<5) { diceEn=mDiceEn; @@ -1314,6 +1380,7 @@ MoveAnim.attach(&MoveRun,0.3); mDiceEn=5; } + DicePrint(); } posUpdate(); ausfuehren(postion);