Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: LCD_DISCO_F429ZI mbed TS_DISCO_F429ZI BSP_DISCO_F429ZI
main.cpp@1:9770f292298c, 2020-11-15 (annotated)
- Committer:
- kkleong
- Date:
- Sun Nov 15 22:31:19 2020 +0000
- Revision:
- 1:9770f292298c
- Parent:
- 0:e579c6f35abf
- Child:
- 2:1be4e7457636
Added some
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kkleong | 0:e579c6f35abf | 1 | #include "mbed.h" |
| kkleong | 0:e579c6f35abf | 2 | #include "TS_DISCO_F429ZI.h" |
| kkleong | 0:e579c6f35abf | 3 | #include "LCD_DISCO_F429ZI.h" |
| kkleong | 0:e579c6f35abf | 4 | |
| kkleong | 0:e579c6f35abf | 5 | extern "C" uint32_t getQuad ( uint16_t x, uint16_t y); |
| kkleong | 0:e579c6f35abf | 6 | extern "C" uint32_t swapRedBlue ( uint32_t color); |
| kkleong | 0:e579c6f35abf | 7 | extern "C" uint32_t toggleAlphaMSB ( uint32_t color); |
| kkleong | 0:e579c6f35abf | 8 | //extern "C" uint32_t rotateRGBBytes ( uint32_t color); |
| kkleong | 0:e579c6f35abf | 9 | //extern "C" uint32_t setRGBBits ( uint32_t color, uint8_t n); |
| kkleong | 0:e579c6f35abf | 10 | |
| kkleong | 0:e579c6f35abf | 11 | LCD_DISCO_F429ZI lcd; |
| kkleong | 0:e579c6f35abf | 12 | TS_DISCO_F429ZI ts; |
| kkleong | 0:e579c6f35abf | 13 | |
| kkleong | 0:e579c6f35abf | 14 | int main() |
| kkleong | 0:e579c6f35abf | 15 | { |
| kkleong | 0:e579c6f35abf | 16 | TS_StateTypeDef TS_State; |
| kkleong | 0:e579c6f35abf | 17 | uint16_t x, y; |
| kkleong | 0:e579c6f35abf | 18 | uint8_t text[30]; |
| kkleong | 1:9770f292298c | 19 | uint8_t status; |
| kkleong | 0:e579c6f35abf | 20 | |
| kkleong | 0:e579c6f35abf | 21 | BSP_LCD_SetFont(&Font20); |
| kkleong | 1:9770f292298c | 22 | |
| kkleong | 1:9770f292298c | 23 | status = ts.Init(lcd.GetXSize(), lcd.GetYSize()); |
| kkleong | 0:e579c6f35abf | 24 | |
| kkleong | 1:9770f292298c | 25 | if (status != TS_OK) |
| kkleong | 1:9770f292298c | 26 | { |
| kkleong | 1:9770f292298c | 27 | lcd.Clear(LCD_COLOR_RED); |
| kkleong | 1:9770f292298c | 28 | lcd.SetBackColor(LCD_COLOR_RED); |
| kkleong | 1:9770f292298c | 29 | lcd.SetTextColor(LCD_COLOR_WHITE); |
| kkleong | 1:9770f292298c | 30 | lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE); |
| kkleong | 1:9770f292298c | 31 | lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT FAIL", CENTER_MODE); |
| kkleong | 1:9770f292298c | 32 | } |
| kkleong | 1:9770f292298c | 33 | else |
| kkleong | 1:9770f292298c | 34 | { |
| kkleong | 1:9770f292298c | 35 | lcd.Clear(LCD_COLOR_GREEN); |
| kkleong | 1:9770f292298c | 36 | lcd.SetBackColor(LCD_COLOR_GREEN); |
| kkleong | 1:9770f292298c | 37 | lcd.SetTextColor(LCD_COLOR_WHITE); |
| kkleong | 1:9770f292298c | 38 | lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN", CENTER_MODE); |
| kkleong | 1:9770f292298c | 39 | lcd.DisplayStringAt(0, LINE(6), (uint8_t *)"INIT OK", CENTER_MODE); |
| kkleong | 1:9770f292298c | 40 | } |
| kkleong | 1:9770f292298c | 41 | |
| kkleong | 1:9770f292298c | 42 | wait(1); |
| kkleong | 1:9770f292298c | 43 | lcd.Clear(LCD_COLOR_BLUE); |
| kkleong | 1:9770f292298c | 44 | lcd.SetBackColor(LCD_COLOR_BLUE); |
| kkleong | 1:9770f292298c | 45 | |
| kkleong | 1:9770f292298c | 46 | |
| kkleong | 0:e579c6f35abf | 47 | lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"Project 3!!!", CENTER_MODE); |
| kkleong | 1:9770f292298c | 48 | |
| kkleong | 0:e579c6f35abf | 49 | wait(1); |
| kkleong | 1:9770f292298c | 50 | |
| kkleong | 0:e579c6f35abf | 51 | int xSize = lcd.GetXSize()/2; |
| kkleong | 0:e579c6f35abf | 52 | int ySize = lcd.GetYSize()/2; |
| kkleong | 0:e579c6f35abf | 53 | |
| kkleong | 0:e579c6f35abf | 54 | uint32_t blue = 0xFF0000FF; |
| kkleong | 0:e579c6f35abf | 55 | uint32_t green = 0xFF00FF00; |
| kkleong | 0:e579c6f35abf | 56 | uint32_t red = 0xFFFF0000; |
| kkleong | 0:e579c6f35abf | 57 | uint32_t yellow = 0xFFFFFF00; |
| kkleong | 0:e579c6f35abf | 58 | |
| kkleong | 0:e579c6f35abf | 59 | lcd.SetTextColor(blue); //blue |
| kkleong | 0:e579c6f35abf | 60 | lcd.FillRect(0, 0, xSize, ySize); |
| kkleong | 0:e579c6f35abf | 61 | lcd.SetTextColor(green); //green |
| kkleong | 0:e579c6f35abf | 62 | lcd.FillRect(0, ySize, xSize, ySize); |
| kkleong | 0:e579c6f35abf | 63 | lcd.SetTextColor(red); //red |
| kkleong | 0:e579c6f35abf | 64 | lcd.FillRect(xSize, 0, xSize, ySize); |
| kkleong | 0:e579c6f35abf | 65 | lcd.SetTextColor(yellow); //yellow |
| kkleong | 0:e579c6f35abf | 66 | lcd.FillRect(xSize, ySize, xSize, ySize); |
| kkleong | 0:e579c6f35abf | 67 | |
| kkleong | 0:e579c6f35abf | 68 | while(1) |
| kkleong | 0:e579c6f35abf | 69 | { |
| kkleong | 0:e579c6f35abf | 70 | ts.GetState(&TS_State); |
| kkleong | 0:e579c6f35abf | 71 | if (TS_State.TouchDetected) |
| kkleong | 0:e579c6f35abf | 72 | { |
| kkleong | 0:e579c6f35abf | 73 | x = TS_State.X; |
| kkleong | 0:e579c6f35abf | 74 | y = TS_State.Y; |
| kkleong | 0:e579c6f35abf | 75 | sprintf((char*)text, "x=%d y=%d ", x, y); |
| kkleong | 1:9770f292298c | 76 | lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
| kkleong | 1:9770f292298c | 77 | } |
| kkleong | 1:9770f292298c | 78 | |
| kkleong | 1:9770f292298c | 79 | int quad = getQuad(x, y); |
| kkleong | 1:9770f292298c | 80 | |
| kkleong | 0:e579c6f35abf | 81 | |
| kkleong | 0:e579c6f35abf | 82 | if(quad == 1){ |
| kkleong | 0:e579c6f35abf | 83 | blue = swapRedBlue(blue); |
| kkleong | 0:e579c6f35abf | 84 | lcd.SetTextColor(blue); |
| kkleong | 0:e579c6f35abf | 85 | lcd.FillRect(0, 0, xSize, ySize); |
| kkleong | 0:e579c6f35abf | 86 | } |
| kkleong | 0:e579c6f35abf | 87 | else if(quad == 2){ |
| kkleong | 0:e579c6f35abf | 88 | red = toggleAlphaMSB(red); |
| kkleong | 0:e579c6f35abf | 89 | lcd.SetTextColor(red); |
| kkleong | 0:e579c6f35abf | 90 | lcd.FillRect(xSize, 0, xSize, ySize); |
| kkleong | 0:e579c6f35abf | 91 | } |
| kkleong | 0:e579c6f35abf | 92 | else if(quad == 3){ |
| kkleong | 1:9770f292298c | 93 | |
| kkleong | 0:e579c6f35abf | 94 | } |
| kkleong | 0:e579c6f35abf | 95 | else if(quad == 4){ |
| kkleong | 0:e579c6f35abf | 96 | |
| kkleong | 0:e579c6f35abf | 97 | } |
| kkleong | 0:e579c6f35abf | 98 | |
| kkleong | 1:9770f292298c | 99 | wait(.2); |
| kkleong | 0:e579c6f35abf | 100 | } |
| kkleong | 0:e579c6f35abf | 101 | } |