Proj3Kornreich

Dependencies:   LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI

Committer:
wkornreich
Date:
Mon Nov 15 06:10:23 2021 +0000
Revision:
0:77c6d064a44f
FinalOfProj3;

Who changed what in which revision?

UserRevisionLine numberNew 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 }