Final Version Program 4 Kornreich

Dependencies:   LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI

Committer:
wkornreich
Date:
Tue Dec 07 07:20:04 2021 +0000
Revision:
0:9c65f066245c
FInal Version Program 4;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wkornreich 0:9c65f066245c 1 #include "mbed.h"
wkornreich 0:9c65f066245c 2 #include "TS_DISCO_F429ZI.h"
wkornreich 0:9c65f066245c 3 #include "LCD_DISCO_F429ZI.h"
wkornreich 0:9c65f066245c 4
wkornreich 0:9c65f066245c 5 LCD_DISCO_F429ZI lcd;
wkornreich 0:9c65f066245c 6 TS_DISCO_F429ZI ts;
wkornreich 0:9c65f066245c 7
wkornreich 0:9c65f066245c 8 uint16_t winningSection = 1;
wkornreich 0:9c65f066245c 9 uint32_t counter1 = 0;
wkornreich 0:9c65f066245c 10 uint32_t color1 = 0xFFFF00F0; //
wkornreich 0:9c65f066245c 11 uint32_t color2 = 0xFF00FF00; //green
wkornreich 0:9c65f066245c 12 uint32_t color3 = 0xFF0000FF; //blue
wkornreich 0:9c65f066245c 13 uint32_t color4 = 0xF3FF1427; //
wkornreich 0:9c65f066245c 14
wkornreich 0:9c65f066245c 15
wkornreich 0:9c65f066245c 16 extern "C" void AddOne(uint32_t *);
wkornreich 0:9c65f066245c 17 extern "C" uint16_t compare(uint32_t *);
wkornreich 0:9c65f066245c 18 extern "C" uint16_t swap(uint32_t *);
wkornreich 0:9c65f066245c 19 extern "C" uint16_t alphaC(uint32_t *);
wkornreich 0:9c65f066245c 20 extern "C" uint16_t rotate(uint32_t *);
wkornreich 0:9c65f066245c 21 extern "C" uint16_t optionFour(uint32_t *);
wkornreich 0:9c65f066245c 22
wkornreich 0:9c65f066245c 23 InterruptIn user_button(USER_BUTTON);
wkornreich 0:9c65f066245c 24
wkornreich 0:9c65f066245c 25 void button_pressed() {
wkornreich 0:9c65f066245c 26 /*
wkornreich 0:9c65f066245c 27 lcd.Clear(LCD_COLOR_BLUE);
wkornreich 0:9c65f066245c 28 lcd.SetBackColor(LCD_COLOR_RED);
wkornreich 0:9c65f066245c 29 lcd.SetTextColor(LCD_COLOR_WHITE);
wkornreich 0:9c65f066245c 30 wait(.5);
wkornreich 0:9c65f066245c 31 lcd.DisplayStringAt(0, LINE(4), (uint8_t *)"RESETING", CENTER_MODE);
wkornreich 0:9c65f066245c 32 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"GAME", CENTER_MODE);
wkornreich 0:9c65f066245c 33 wait(1);
wkornreich 0:9c65f066245c 34 winningSection = rand()%3+1;
wkornreich 0:9c65f066245c 35 lcd.Clear(LCD_COLOR_BLUE);
wkornreich 0:9c65f066245c 36 lcd.SetBackColor(LCD_COLOR_BLUE);
wkornreich 0:9c65f066245c 37
wkornreich 0:9c65f066245c 38 lcd.SetTextColor(color4);
wkornreich 0:9c65f066245c 39 lcd.FillRect(0, 00, 240, 80);
wkornreich 0:9c65f066245c 40 lcd.SetTextColor(color3);
wkornreich 0:9c65f066245c 41 lcd.FillRect(0, 80, 240, 80);
wkornreich 0:9c65f066245c 42 lcd.SetTextColor(color2);
wkornreich 0:9c65f066245c 43 lcd.FillRect(0, 160, 240, 80);
wkornreich 0:9c65f066245c 44 lcd.SetTextColor(color1);
wkornreich 0:9c65f066245c 45 lcd.FillRect(0, 240, 240, 80);
wkornreich 0:9c65f066245c 46
wkornreich 0:9c65f066245c 47 */
wkornreich 0:9c65f066245c 48 }
wkornreich 0:9c65f066245c 49
wkornreich 0:9c65f066245c 50
wkornreich 0:9c65f066245c 51 void button_released()
wkornreich 0:9c65f066245c 52 {
wkornreich 0:9c65f066245c 53
wkornreich 0:9c65f066245c 54 }
wkornreich 0:9c65f066245c 55
wkornreich 0:9c65f066245c 56 int main()
wkornreich 0:9c65f066245c 57 {
wkornreich 0:9c65f066245c 58
wkornreich 0:9c65f066245c 59 user_button.rise(&button_pressed);
wkornreich 0:9c65f066245c 60 user_button.fall(&button_released);
wkornreich 0:9c65f066245c 61
wkornreich 0:9c65f066245c 62 TS_StateTypeDef TS_State;
wkornreich 0:9c65f066245c 63 uint16_t x, y;
wkornreich 0:9c65f066245c 64 uint8_t text[30];
wkornreich 0:9c65f066245c 65 uint8_t status;
wkornreich 0:9c65f066245c 66
wkornreich 0:9c65f066245c 67 BSP_LCD_SetFont(&Font20);
wkornreich 0:9c65f066245c 68
wkornreich 0:9c65f066245c 69 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"COLOR FUN", CENTER_MODE);
wkornreich 0:9c65f066245c 70 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"IM SORRY ITS LATE", CENTER_MODE);
wkornreich 0:9c65f066245c 71 lcd.DisplayStringAt(0, LINE(7), (uint8_t *)"I HAD THE FLU", CENTER_MODE);
wkornreich 0:9c65f066245c 72
wkornreich 0:9c65f066245c 73 wait(3);
wkornreich 0:9c65f066245c 74
wkornreich 0:9c65f066245c 75 status = ts.Init(lcd.GetXSize(), lcd.GetYSize());
wkornreich 0:9c65f066245c 76
wkornreich 0:9c65f066245c 77 if (status != TS_OK)
wkornreich 0:9c65f066245c 78 {
wkornreich 0:9c65f066245c 79 lcd.Clear(LCD_COLOR_RED);
wkornreich 0:9c65f066245c 80 lcd.SetBackColor(LCD_COLOR_RED);
wkornreich 0:9c65f066245c 81 lcd.SetTextColor(LCD_COLOR_WHITE);
wkornreich 0:9c65f066245c 82 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
wkornreich 0:9c65f066245c 83 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT FAIL", CENTER_MODE);
wkornreich 0:9c65f066245c 84 }
wkornreich 0:9c65f066245c 85 else
wkornreich 0:9c65f066245c 86 {
wkornreich 0:9c65f066245c 87 lcd.Clear(LCD_COLOR_GREEN);
wkornreich 0:9c65f066245c 88 lcd.SetBackColor(LCD_COLOR_GREEN);
wkornreich 0:9c65f066245c 89 lcd.SetTextColor(LCD_COLOR_WHITE);
wkornreich 0:9c65f066245c 90 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE);
wkornreich 0:9c65f066245c 91 lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT OK", CENTER_MODE);
wkornreich 0:9c65f066245c 92 }
wkornreich 0:9c65f066245c 93
wkornreich 0:9c65f066245c 94 wait(1);
wkornreich 0:9c65f066245c 95 lcd.Clear(LCD_COLOR_BLUE);
wkornreich 0:9c65f066245c 96 lcd.SetBackColor(LCD_COLOR_BLUE);
wkornreich 0:9c65f066245c 97 lcd.SetTextColor(color4);
wkornreich 0:9c65f066245c 98 lcd.FillRect(0, 00, 240, 80);
wkornreich 0:9c65f066245c 99 lcd.SetTextColor(color3);
wkornreich 0:9c65f066245c 100 lcd.FillRect(0, 80, 240, 80);
wkornreich 0:9c65f066245c 101 lcd.SetTextColor(color2);
wkornreich 0:9c65f066245c 102 lcd.FillRect(0, 160, 240, 80);
wkornreich 0:9c65f066245c 103 lcd.SetTextColor(color1);
wkornreich 0:9c65f066245c 104 lcd.FillRect(0, 240, 240, 80);
wkornreich 0:9c65f066245c 105
wkornreich 0:9c65f066245c 106 while(1)
wkornreich 0:9c65f066245c 107 {
wkornreich 0:9c65f066245c 108
wkornreich 0:9c65f066245c 109
wkornreich 0:9c65f066245c 110 ts.GetState(&TS_State);
wkornreich 0:9c65f066245c 111 if (TS_State.TouchDetected)
wkornreich 0:9c65f066245c 112 {
wkornreich 0:9c65f066245c 113 x = TS_State.X;
wkornreich 0:9c65f066245c 114 y = TS_State.Y;
wkornreich 0:9c65f066245c 115 //sprintf((char*)text, "x=%d y=%d ", x, y);
wkornreich 0:9c65f066245c 116 //lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
wkornreich 0:9c65f066245c 117
wkornreich 0:9c65f066245c 118 uint16_t winner = compare((uint32_t *) &y);
wkornreich 0:9c65f066245c 119 //bool Yout = compare((uint32_t *) &winningSection,(uint16_t *) &y);
wkornreich 0:9c65f066245c 120
wkornreich 0:9c65f066245c 121 //bool winner = true;
wkornreich 0:9c65f066245c 122 // sprintf((char*)text, "%d", Yout);
wkornreich 0:9c65f066245c 123 // lcd.DisplayStringAt(0, LINE(2), (uint8_t *)&text, LEFT_MODE);
wkornreich 0:9c65f066245c 124
wkornreich 0:9c65f066245c 125
wkornreich 0:9c65f066245c 126
wkornreich 0:9c65f066245c 127
wkornreich 0:9c65f066245c 128 sprintf((char*)text, "quadrant=%d ", winner);
wkornreich 0:9c65f066245c 129 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
wkornreich 0:9c65f066245c 130
wkornreich 0:9c65f066245c 131 if(winner == 1) {
wkornreich 0:9c65f066245c 132 wait(1);
wkornreich 0:9c65f066245c 133
wkornreich 0:9c65f066245c 134 color1 = swap(&color1);
wkornreich 0:9c65f066245c 135
wkornreich 0:9c65f066245c 136 }
wkornreich 0:9c65f066245c 137 if(winner == 2) {
wkornreich 0:9c65f066245c 138 wait(1);
wkornreich 0:9c65f066245c 139
wkornreich 0:9c65f066245c 140 color2 = alphaC(&color2);
wkornreich 0:9c65f066245c 141
wkornreich 0:9c65f066245c 142 }
wkornreich 0:9c65f066245c 143 if(winner == 3) {
wkornreich 0:9c65f066245c 144 wait(1);
wkornreich 0:9c65f066245c 145
wkornreich 0:9c65f066245c 146 color3 = rotate(&color3);
wkornreich 0:9c65f066245c 147
wkornreich 0:9c65f066245c 148 }
wkornreich 0:9c65f066245c 149
wkornreich 0:9c65f066245c 150 if(winner == 4) {
wkornreich 0:9c65f066245c 151 wait(1);
wkornreich 0:9c65f066245c 152
wkornreich 0:9c65f066245c 153 color4 = optionFour(&color4);
wkornreich 0:9c65f066245c 154
wkornreich 0:9c65f066245c 155 }
wkornreich 0:9c65f066245c 156
wkornreich 0:9c65f066245c 157 lcd.SetTextColor(color4);
wkornreich 0:9c65f066245c 158 lcd.FillRect(0, 00, 240, 80);
wkornreich 0:9c65f066245c 159 lcd.SetTextColor(color3);
wkornreich 0:9c65f066245c 160 lcd.FillRect(0, 80, 240, 80);
wkornreich 0:9c65f066245c 161 lcd.SetTextColor(color2);
wkornreich 0:9c65f066245c 162 lcd.FillRect(0, 160, 240, 80);
wkornreich 0:9c65f066245c 163 lcd.SetTextColor(color1);
wkornreich 0:9c65f066245c 164 lcd.FillRect(0, 240, 240, 80);
wkornreich 0:9c65f066245c 165
wkornreich 0:9c65f066245c 166 }
wkornreich 0:9c65f066245c 167 }
wkornreich 0:9c65f066245c 168 }