
Proj3Kornreich
Dependencies: LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI
main.cpp@0:77c6d064a44f, 2021-11-15 (annotated)
- Committer:
- wkornreich
- Date:
- Mon Nov 15 06:10:23 2021 +0000
- Revision:
- 0:77c6d064a44f
FinalOfProj3;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wkornreich | 0:77c6d064a44f | 1 | #include "mbed.h" |
wkornreich | 0:77c6d064a44f | 2 | #include "TS_DISCO_F429ZI.h" |
wkornreich | 0:77c6d064a44f | 3 | #include "LCD_DISCO_F429ZI.h" |
wkornreich | 0:77c6d064a44f | 4 | |
wkornreich | 0:77c6d064a44f | 5 | LCD_DISCO_F429ZI lcd; |
wkornreich | 0:77c6d064a44f | 6 | TS_DISCO_F429ZI ts; |
wkornreich | 0:77c6d064a44f | 7 | |
wkornreich | 0:77c6d064a44f | 8 | uint16_t winningSection = 1; |
wkornreich | 0:77c6d064a44f | 9 | uint32_t counter1 = 0; |
wkornreich | 0:77c6d064a44f | 10 | |
wkornreich | 0:77c6d064a44f | 11 | |
wkornreich | 0:77c6d064a44f | 12 | extern "C" void AddOne(uint32_t *); |
wkornreich | 0:77c6d064a44f | 13 | extern "C" bool compare(uint32_t *, uint16_t *); |
wkornreich | 0:77c6d064a44f | 14 | |
wkornreich | 0:77c6d064a44f | 15 | InterruptIn user_button(USER_BUTTON); |
wkornreich | 0:77c6d064a44f | 16 | |
wkornreich | 0:77c6d064a44f | 17 | void button_pressed() { |
wkornreich | 0:77c6d064a44f | 18 | lcd.Clear(LCD_COLOR_BLUE); |
wkornreich | 0:77c6d064a44f | 19 | lcd.SetBackColor(LCD_COLOR_RED); |
wkornreich | 0:77c6d064a44f | 20 | lcd.SetTextColor(LCD_COLOR_WHITE); |
wkornreich | 0:77c6d064a44f | 21 | wait(.5); |
wkornreich | 0:77c6d064a44f | 22 | lcd.DisplayStringAt(0, LINE(4), (uint8_t *)"RESETING", CENTER_MODE); |
wkornreich | 0:77c6d064a44f | 23 | lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"GAME", CENTER_MODE); |
wkornreich | 0:77c6d064a44f | 24 | wait(1); |
wkornreich | 0:77c6d064a44f | 25 | lcd.Clear(LCD_COLOR_BLUE); |
wkornreich | 0:77c6d064a44f | 26 | lcd.SetBackColor(LCD_COLOR_RED); |
wkornreich | 0:77c6d064a44f | 27 | lcd.SetTextColor(LCD_COLOR_WHITE); |
wkornreich | 0:77c6d064a44f | 28 | wait(.5); |
wkornreich | 0:77c6d064a44f | 29 | winningSection = rand()%3+1; |
wkornreich | 0:77c6d064a44f | 30 | lcd.Clear(LCD_COLOR_BLUE); |
wkornreich | 0:77c6d064a44f | 31 | lcd.SetBackColor(LCD_COLOR_BLUE); |
wkornreich | 0:77c6d064a44f | 32 | lcd.SetTextColor(LCD_COLOR_WHITE); |
wkornreich | 0:77c6d064a44f | 33 | lcd.FillRect(0, 105, 240, 2); |
wkornreich | 0:77c6d064a44f | 34 | lcd.FillRect(0, 212, 240, 2); |
wkornreich | 0:77c6d064a44f | 35 | } |
wkornreich | 0:77c6d064a44f | 36 | |
wkornreich | 0:77c6d064a44f | 37 | |
wkornreich | 0:77c6d064a44f | 38 | void button_released() |
wkornreich | 0:77c6d064a44f | 39 | { |
wkornreich | 0:77c6d064a44f | 40 | |
wkornreich | 0:77c6d064a44f | 41 | } |
wkornreich | 0:77c6d064a44f | 42 | |
wkornreich | 0:77c6d064a44f | 43 | int main() |
wkornreich | 0:77c6d064a44f | 44 | { |
wkornreich | 0:77c6d064a44f | 45 | |
wkornreich | 0:77c6d064a44f | 46 | user_button.rise(&button_pressed); |
wkornreich | 0:77c6d064a44f | 47 | user_button.fall(&button_released); |
wkornreich | 0:77c6d064a44f | 48 | |
wkornreich | 0:77c6d064a44f | 49 | TS_StateTypeDef TS_State; |
wkornreich | 0:77c6d064a44f | 50 | uint16_t x, y; |
wkornreich | 0:77c6d064a44f | 51 | uint8_t text[30]; |
wkornreich | 0:77c6d064a44f | 52 | uint8_t status; |
wkornreich | 0:77c6d064a44f | 53 | |
wkornreich | 0:77c6d064a44f | 54 | BSP_LCD_SetFont(&Font20); |
wkornreich | 0:77c6d064a44f | 55 | |
wkornreich | 0:77c6d064a44f | 56 | lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"KORNREICH GAMES!", CENTER_MODE); |
wkornreich | 0:77c6d064a44f | 57 | lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"Try and Win!", CENTER_MODE); |
wkornreich | 0:77c6d064a44f | 58 | |
wkornreich | 0:77c6d064a44f | 59 | wait(1); |
wkornreich | 0:77c6d064a44f | 60 | |
wkornreich | 0:77c6d064a44f | 61 | status = ts.Init(lcd.GetXSize(), lcd.GetYSize()); |
wkornreich | 0:77c6d064a44f | 62 | |
wkornreich | 0:77c6d064a44f | 63 | if (status != TS_OK) |
wkornreich | 0:77c6d064a44f | 64 | { |
wkornreich | 0:77c6d064a44f | 65 | lcd.Clear(LCD_COLOR_RED); |
wkornreich | 0:77c6d064a44f | 66 | lcd.SetBackColor(LCD_COLOR_RED); |
wkornreich | 0:77c6d064a44f | 67 | lcd.SetTextColor(LCD_COLOR_WHITE); |
wkornreich | 0:77c6d064a44f | 68 | lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE); |
wkornreich | 0:77c6d064a44f | 69 | lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT FAIL", CENTER_MODE); |
wkornreich | 0:77c6d064a44f | 70 | } |
wkornreich | 0:77c6d064a44f | 71 | else |
wkornreich | 0:77c6d064a44f | 72 | { |
wkornreich | 0:77c6d064a44f | 73 | lcd.Clear(LCD_COLOR_GREEN); |
wkornreich | 0:77c6d064a44f | 74 | lcd.SetBackColor(LCD_COLOR_GREEN); |
wkornreich | 0:77c6d064a44f | 75 | lcd.SetTextColor(LCD_COLOR_WHITE); |
wkornreich | 0:77c6d064a44f | 76 | lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE); |
wkornreich | 0:77c6d064a44f | 77 | lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT OK", CENTER_MODE); |
wkornreich | 0:77c6d064a44f | 78 | } |
wkornreich | 0:77c6d064a44f | 79 | |
wkornreich | 0:77c6d064a44f | 80 | wait(1); |
wkornreich | 0:77c6d064a44f | 81 | lcd.Clear(LCD_COLOR_BLUE); |
wkornreich | 0:77c6d064a44f | 82 | lcd.SetBackColor(LCD_COLOR_BLUE); |
wkornreich | 0:77c6d064a44f | 83 | lcd.SetTextColor(LCD_COLOR_WHITE); |
wkornreich | 0:77c6d064a44f | 84 | lcd.FillRect(0, 105, 240, 2); |
wkornreich | 0:77c6d064a44f | 85 | lcd.FillRect(0, 212, 240, 2); |
wkornreich | 0:77c6d064a44f | 86 | |
wkornreich | 0:77c6d064a44f | 87 | while(1) |
wkornreich | 0:77c6d064a44f | 88 | { |
wkornreich | 0:77c6d064a44f | 89 | |
wkornreich | 0:77c6d064a44f | 90 | |
wkornreich | 0:77c6d064a44f | 91 | ts.GetState(&TS_State); |
wkornreich | 0:77c6d064a44f | 92 | if (TS_State.TouchDetected) |
wkornreich | 0:77c6d064a44f | 93 | { |
wkornreich | 0:77c6d064a44f | 94 | x = TS_State.X; |
wkornreich | 0:77c6d064a44f | 95 | y = TS_State.Y; |
wkornreich | 0:77c6d064a44f | 96 | sprintf((char*)text, "x=%d y=%d ", x, y); |
wkornreich | 0:77c6d064a44f | 97 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
wkornreich | 0:77c6d064a44f | 98 | |
wkornreich | 0:77c6d064a44f | 99 | bool winner = compare((uint32_t *) &winningSection,(uint16_t *) &y); |
wkornreich | 0:77c6d064a44f | 100 | |
wkornreich | 0:77c6d064a44f | 101 | |
wkornreich | 0:77c6d064a44f | 102 | |
wkornreich | 0:77c6d064a44f | 103 | if(winner) { |
wkornreich | 0:77c6d064a44f | 104 | |
wkornreich | 0:77c6d064a44f | 105 | sprintf((char*)text, "You WIN!"); |
wkornreich | 0:77c6d064a44f | 106 | lcd.DisplayStringAt(0, LINE(1), (uint8_t *)&text, LEFT_MODE); |
wkornreich | 0:77c6d064a44f | 107 | } |
wkornreich | 0:77c6d064a44f | 108 | else{ |
wkornreich | 0:77c6d064a44f | 109 | sprintf((char*)text, "You Lose!"); |
wkornreich | 0:77c6d064a44f | 110 | lcd.DisplayStringAt(0, LINE(1), (uint8_t *)&text, LEFT_MODE); |
wkornreich | 0:77c6d064a44f | 111 | } |
wkornreich | 0:77c6d064a44f | 112 | } |
wkornreich | 0:77c6d064a44f | 113 | } |
wkornreich | 0:77c6d064a44f | 114 | } |