
Version1
Dependencies: BSP_DISCO_F746NG DHT22
main.cpp@0:d60753bdf6d7, 2020-06-22 (annotated)
- Committer:
- antoinnneee
- Date:
- Mon Jun 22 15:16:28 2020 +0000
- Revision:
- 0:d60753bdf6d7
FirstCommit;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
antoinnneee | 0:d60753bdf6d7 | 1 | #include "mbed.h" |
antoinnneee | 0:d60753bdf6d7 | 2 | #include "button.h" |
antoinnneee | 0:d60753bdf6d7 | 3 | #include "view.h" |
antoinnneee | 0:d60753bdf6d7 | 4 | #include "stm32746g_discovery_lcd.h" |
antoinnneee | 0:d60753bdf6d7 | 5 | #include "stm32746g_discovery_ts.h" |
antoinnneee | 0:d60753bdf6d7 | 6 | #include <list> |
antoinnneee | 0:d60753bdf6d7 | 7 | #define SCREENWIDTH 480 |
antoinnneee | 0:d60753bdf6d7 | 8 | #define SCREENHEIGHT 272 |
antoinnneee | 0:d60753bdf6d7 | 9 | #include <DHT22/DHT22.h> |
antoinnneee | 0:d60753bdf6d7 | 10 | |
antoinnneee | 0:d60753bdf6d7 | 11 | uint8_t text[30]; |
antoinnneee | 0:d60753bdf6d7 | 12 | |
antoinnneee | 0:d60753bdf6d7 | 13 | void setBackgroundColor(uint32_t color) |
antoinnneee | 0:d60753bdf6d7 | 14 | { |
antoinnneee | 0:d60753bdf6d7 | 15 | BSP_LCD_Clear(color); |
antoinnneee | 0:d60753bdf6d7 | 16 | } |
antoinnneee | 0:d60753bdf6d7 | 17 | |
antoinnneee | 0:d60753bdf6d7 | 18 | void setHalfColor(uint32_t color0, uint32_t color1) |
antoinnneee | 0:d60753bdf6d7 | 19 | { |
antoinnneee | 0:d60753bdf6d7 | 20 | BSP_LCD_Clear(color0); |
antoinnneee | 0:d60753bdf6d7 | 21 | |
antoinnneee | 0:d60753bdf6d7 | 22 | int x = SCREENWIDTH>>1; |
antoinnneee | 0:d60753bdf6d7 | 23 | while (x < SCREENWIDTH) { |
antoinnneee | 0:d60753bdf6d7 | 24 | int y = 0; |
antoinnneee | 0:d60753bdf6d7 | 25 | while (y < SCREENHEIGHT) { |
antoinnneee | 0:d60753bdf6d7 | 26 | BSP_LCD_DrawPixel(x, y, color1); |
antoinnneee | 0:d60753bdf6d7 | 27 | y++; |
antoinnneee | 0:d60753bdf6d7 | 28 | } |
antoinnneee | 0:d60753bdf6d7 | 29 | x++; |
antoinnneee | 0:d60753bdf6d7 | 30 | } |
antoinnneee | 0:d60753bdf6d7 | 31 | } |
antoinnneee | 0:d60753bdf6d7 | 32 | |
antoinnneee | 0:d60753bdf6d7 | 33 | void updateButton() |
antoinnneee | 0:d60753bdf6d7 | 34 | { |
antoinnneee | 0:d60753bdf6d7 | 35 | |
antoinnneee | 0:d60753bdf6d7 | 36 | } |
antoinnneee | 0:d60753bdf6d7 | 37 | |
antoinnneee | 0:d60753bdf6d7 | 38 | |
antoinnneee | 0:d60753bdf6d7 | 39 | int main() |
antoinnneee | 0:d60753bdf6d7 | 40 | { |
antoinnneee | 0:d60753bdf6d7 | 41 | TS_StateTypeDef TS_State; |
antoinnneee | 0:d60753bdf6d7 | 42 | uint16_t x, y; |
antoinnneee | 0:d60753bdf6d7 | 43 | uint8_t status; |
antoinnneee | 0:d60753bdf6d7 | 44 | uint8_t idx; |
antoinnneee | 0:d60753bdf6d7 | 45 | uint8_t cleared = 0; |
antoinnneee | 0:d60753bdf6d7 | 46 | uint8_t prev_nb_touches = 0; |
antoinnneee | 0:d60753bdf6d7 | 47 | |
antoinnneee | 0:d60753bdf6d7 | 48 | BSP_LCD_Init(); |
antoinnneee | 0:d60753bdf6d7 | 49 | BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS); |
antoinnneee | 0:d60753bdf6d7 | 50 | BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER); |
antoinnneee | 0:d60753bdf6d7 | 51 | |
antoinnneee | 0:d60753bdf6d7 | 52 | status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()); |
antoinnneee | 0:d60753bdf6d7 | 53 | if (status != TS_OK) { |
antoinnneee | 0:d60753bdf6d7 | 54 | BSP_LCD_Clear(LCD_COLOR_RED); |
antoinnneee | 0:d60753bdf6d7 | 55 | BSP_LCD_SetBackColor(LCD_COLOR_RED); |
antoinnneee | 0:d60753bdf6d7 | 56 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
antoinnneee | 0:d60753bdf6d7 | 57 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE); |
antoinnneee | 0:d60753bdf6d7 | 58 | while (1); |
antoinnneee | 0:d60753bdf6d7 | 59 | } else { |
antoinnneee | 0:d60753bdf6d7 | 60 | BSP_LCD_Clear(LCD_COLOR_GREEN); |
antoinnneee | 0:d60753bdf6d7 | 61 | BSP_LCD_SetBackColor(LCD_COLOR_GREEN); |
antoinnneee | 0:d60753bdf6d7 | 62 | BSP_LCD_SetTextColor(LCD_COLOR_WHITE); |
antoinnneee | 0:d60753bdf6d7 | 63 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT OK", CENTER_MODE); |
antoinnneee | 0:d60753bdf6d7 | 64 | } |
antoinnneee | 0:d60753bdf6d7 | 65 | |
antoinnneee | 0:d60753bdf6d7 | 66 | HAL_Delay(100); |
antoinnneee | 0:d60753bdf6d7 | 67 | BSP_LCD_SetFont(&Font12); |
antoinnneee | 0:d60753bdf6d7 | 68 | BSP_LCD_SetBackColor(LCD_COLOR_LIGHTCYAN); |
antoinnneee | 0:d60753bdf6d7 | 69 | BSP_LCD_SetTextColor(LCD_COLOR_DARKBLUE); |
antoinnneee | 0:d60753bdf6d7 | 70 | |
antoinnneee | 0:d60753bdf6d7 | 71 | View v; |
antoinnneee | 0:d60753bdf6d7 | 72 | while(1) { |
antoinnneee | 0:d60753bdf6d7 | 73 | static int delayer = 0; |
antoinnneee | 0:d60753bdf6d7 | 74 | |
antoinnneee | 0:d60753bdf6d7 | 75 | delayer ++; |
antoinnneee | 0:d60753bdf6d7 | 76 | if (delayer == 5000) |
antoinnneee | 0:d60753bdf6d7 | 77 | { |
antoinnneee | 0:d60753bdf6d7 | 78 | v.dht->read(); |
antoinnneee | 0:d60753bdf6d7 | 79 | v.updateGauge(); |
antoinnneee | 0:d60753bdf6d7 | 80 | delayer = 0; |
antoinnneee | 0:d60753bdf6d7 | 81 | } |
antoinnneee | 0:d60753bdf6d7 | 82 | |
antoinnneee | 0:d60753bdf6d7 | 83 | BSP_TS_GetState(&TS_State); |
antoinnneee | 0:d60753bdf6d7 | 84 | if (TS_State.touchDetected) { |
antoinnneee | 0:d60753bdf6d7 | 85 | cleared = 0; |
antoinnneee | 0:d60753bdf6d7 | 86 | for (idx = 0; idx < TS_State.touchDetected; idx++) { |
antoinnneee | 0:d60753bdf6d7 | 87 | x = TS_State.touchX[idx]; |
antoinnneee | 0:d60753bdf6d7 | 88 | y = TS_State.touchY[idx]; |
antoinnneee | 0:d60753bdf6d7 | 89 | v.contain(x, y); |
antoinnneee | 0:d60753bdf6d7 | 90 | } |
antoinnneee | 0:d60753bdf6d7 | 91 | |
antoinnneee | 0:d60753bdf6d7 | 92 | |
antoinnneee | 0:d60753bdf6d7 | 93 | } else { |
antoinnneee | 0:d60753bdf6d7 | 94 | if (!cleared) { |
antoinnneee | 0:d60753bdf6d7 | 95 | //v.draw(); |
antoinnneee | 0:d60753bdf6d7 | 96 | cleared = 1; |
antoinnneee | 0:d60753bdf6d7 | 97 | } |
antoinnneee | 0:d60753bdf6d7 | 98 | } |
antoinnneee | 0:d60753bdf6d7 | 99 | } |
antoinnneee | 0:d60753bdf6d7 | 100 | } |