
Final Version Program 4 Kornreich
Dependencies: LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI
main.cpp@0:9c65f066245c, 2021-12-07 (annotated)
- Committer:
- wkornreich
- Date:
- Tue Dec 07 07:20:04 2021 +0000
- Revision:
- 0:9c65f066245c
FInal Version Program 4;
Who changed what in which revision?
User | Revision | Line number | New 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 | } |