Version1

Dependencies:   BSP_DISCO_F746NG DHT22

Committer:
antoinnneee
Date:
Mon Jun 22 15:16:28 2020 +0000
Revision:
0:d60753bdf6d7
FirstCommit;

Who changed what in which revision?

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