
fgdfg
Dependencies: BSP_DISCO_F746NG
main.cpp@0:14a394d21b72, 2020-06-07 (annotated)
- Committer:
- amiradmin
- Date:
- Sun Jun 07 11:47:58 2020 +0000
- Revision:
- 0:14a394d21b72
TEst
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
amiradmin | 0:14a394d21b72 | 1 | #include "mbed.h" |
amiradmin | 0:14a394d21b72 | 2 | #include "stm32746g_discovery_lcd.h" |
amiradmin | 0:14a394d21b72 | 3 | #include "stm32746g_discovery_ts.h" |
amiradmin | 0:14a394d21b72 | 4 | |
amiradmin | 0:14a394d21b72 | 5 | int main() |
amiradmin | 0:14a394d21b72 | 6 | { |
amiradmin | 0:14a394d21b72 | 7 | TS_StateTypeDef TS_State; |
amiradmin | 0:14a394d21b72 | 8 | uint16_t x, y; |
amiradmin | 0:14a394d21b72 | 9 | uint8_t text[30]; |
amiradmin | 0:14a394d21b72 | 10 | uint8_t status; |
amiradmin | 0:14a394d21b72 | 11 | uint8_t idx; |
amiradmin | 0:14a394d21b72 | 12 | uint8_t cleared = 0; |
amiradmin | 0:14a394d21b72 | 13 | uint8_t prev_nb_touches = 0; |
amiradmin | 0:14a394d21b72 | 14 | |
amiradmin | 0:14a394d21b72 | 15 | BSP_LCD_Init(); |
amiradmin | 0:14a394d21b72 | 16 | BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS); |
amiradmin | 0:14a394d21b72 | 17 | BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER); |
amiradmin | 0:14a394d21b72 | 18 | |
amiradmin | 0:14a394d21b72 | 19 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN DEMO", CENTER_MODE); |
amiradmin | 0:14a394d21b72 | 20 | HAL_Delay(1000); |
amiradmin | 0:14a394d21b72 | 21 | |
amiradmin | 0:14a394d21b72 | 22 | status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()); |
amiradmin | 0:14a394d21b72 | 23 | if (status != TS_OK) { |
amiradmin | 0:14a394d21b72 | 24 | BSP_LCD_Clear(LCD_COLOR_RED); |
amiradmin | 0:14a394d21b72 | 25 | BSP_LCD_SetBackColor(LCD_COLOR_RED); |
amiradmin | 0:14a394d21b72 | 26 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
amiradmin | 0:14a394d21b72 | 27 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE); |
amiradmin | 0:14a394d21b72 | 28 | } else { |
amiradmin | 0:14a394d21b72 | 29 | BSP_LCD_Clear(LCD_COLOR_GREEN); |
amiradmin | 0:14a394d21b72 | 30 | BSP_LCD_SetBackColor(LCD_COLOR_GREEN); |
amiradmin | 0:14a394d21b72 | 31 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
amiradmin | 0:14a394d21b72 | 32 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT OK", CENTER_MODE); |
amiradmin | 0:14a394d21b72 | 33 | } |
amiradmin | 0:14a394d21b72 | 34 | |
amiradmin | 0:14a394d21b72 | 35 | HAL_Delay(1000); |
amiradmin | 0:14a394d21b72 | 36 | BSP_LCD_SetFont(&Font12); |
amiradmin | 0:14a394d21b72 | 37 | BSP_LCD_SetBackColor(LCD_COLOR_BLUE); |
amiradmin | 0:14a394d21b72 | 38 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
amiradmin | 0:14a394d21b72 | 39 | |
amiradmin | 0:14a394d21b72 | 40 | while(1) { |
amiradmin | 0:14a394d21b72 | 41 | |
amiradmin | 0:14a394d21b72 | 42 | BSP_TS_GetState(&TS_State); |
amiradmin | 0:14a394d21b72 | 43 | if (TS_State.touchDetected) { |
amiradmin | 0:14a394d21b72 | 44 | // Clear lines corresponding to old touches coordinates |
amiradmin | 0:14a394d21b72 | 45 | if (TS_State.touchDetected < prev_nb_touches) { |
amiradmin | 0:14a394d21b72 | 46 | for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) { |
amiradmin | 0:14a394d21b72 | 47 | BSP_LCD_ClearStringLine(idx); |
amiradmin | 0:14a394d21b72 | 48 | } |
amiradmin | 0:14a394d21b72 | 49 | } |
amiradmin | 0:14a394d21b72 | 50 | prev_nb_touches = TS_State.touchDetected; |
amiradmin | 0:14a394d21b72 | 51 | |
amiradmin | 0:14a394d21b72 | 52 | cleared = 0; |
amiradmin | 0:14a394d21b72 | 53 | |
amiradmin | 0:14a394d21b72 | 54 | sprintf((char*)text, "Touches: %d", TS_State.touchDetected); |
amiradmin | 0:14a394d21b72 | 55 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
amiradmin | 0:14a394d21b72 | 56 | |
amiradmin | 0:14a394d21b72 | 57 | for (idx = 0; idx < TS_State.touchDetected; idx++) { |
amiradmin | 0:14a394d21b72 | 58 | x = TS_State.touchX[idx]; |
amiradmin | 0:14a394d21b72 | 59 | y = TS_State.touchY[idx]; |
amiradmin | 0:14a394d21b72 | 60 | sprintf((char*)text, "Touch %d: x=%d y=%d ", idx+1, x, y); |
amiradmin | 0:14a394d21b72 | 61 | BSP_LCD_DisplayStringAt(0, LINE(idx+1), (uint8_t *)&text, LEFT_MODE); |
amiradmin | 0:14a394d21b72 | 62 | } |
amiradmin | 0:14a394d21b72 | 63 | |
amiradmin | 0:14a394d21b72 | 64 | BSP_LCD_DrawPixel(TS_State.touchX[0], TS_State.touchY[0], LCD_COLOR_ORANGE); |
amiradmin | 0:14a394d21b72 | 65 | } else { |
amiradmin | 0:14a394d21b72 | 66 | if (!cleared) { |
amiradmin | 0:14a394d21b72 | 67 | BSP_LCD_Clear(LCD_COLOR_BLUE); |
amiradmin | 0:14a394d21b72 | 68 | sprintf((char*)text, "Touches: 0"); |
amiradmin | 0:14a394d21b72 | 69 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
amiradmin | 0:14a394d21b72 | 70 | cleared = 1; |
amiradmin | 0:14a394d21b72 | 71 | } |
amiradmin | 0:14a394d21b72 | 72 | } |
amiradmin | 0:14a394d21b72 | 73 | } |
amiradmin | 0:14a394d21b72 | 74 | } |