Smart Home Controller

Dependencies:   TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG sMotor

Committer:
TwinToe
Date:
Tue Jan 08 13:36:48 2019 +0000
Revision:
1:7f6f6627aacd
Parent:
0:dfbc18a77337
Child:
2:2f4e4558277c
Touch counter added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
TwinToe 0:dfbc18a77337 1 #include "mbed.h"
TwinToe 1:7f6f6627aacd 2 #include "stdio.h"
TwinToe 0:dfbc18a77337 3 #include "TS_DISCO_F746NG.h"
TwinToe 0:dfbc18a77337 4 #include "LCD_DISCO_F746NG.h"
TwinToe 0:dfbc18a77337 5
TwinToe 0:dfbc18a77337 6 LCD_DISCO_F746NG lcd;
TwinToe 0:dfbc18a77337 7 TS_DISCO_F746NG ts;
TwinToe 1:7f6f6627aacd 8 DigitalOut led(D8);
TwinToe 0:dfbc18a77337 9
TwinToe 0:dfbc18a77337 10 int main()
TwinToe 0:dfbc18a77337 11 {
TwinToe 0:dfbc18a77337 12 // Variables
TwinToe 0:dfbc18a77337 13 TS_StateTypeDef TS_State;
TwinToe 0:dfbc18a77337 14 uint16_t x, y;
TwinToe 0:dfbc18a77337 15 uint16_t status;
TwinToe 1:7f6f6627aacd 16 uint8_t text[30];
TwinToe 1:7f6f6627aacd 17 uint8_t text2[30];
TwinToe 1:7f6f6627aacd 18 uint8_t idx;
TwinToe 1:7f6f6627aacd 19 uint8_t touches = 0;
TwinToe 1:7f6f6627aacd 20 bool touched;
TwinToe 0:dfbc18a77337 21
TwinToe 0:dfbc18a77337 22 //Initial conf
TwinToe 0:dfbc18a77337 23 status = ts.Init(lcd.GetXSize(), lcd.GetYSize());
TwinToe 0:dfbc18a77337 24 lcd.Clear(LCD_COLOR_RED);
TwinToe 0:dfbc18a77337 25 lcd.SetBackColor(LCD_COLOR_RED);
TwinToe 0:dfbc18a77337 26 lcd.SetTextColor(LCD_COLOR_WHITE);
TwinToe 0:dfbc18a77337 27 lcd.SetFont(&Font24);
TwinToe 0:dfbc18a77337 28
TwinToe 0:dfbc18a77337 29 //Start screen
TwinToe 0:dfbc18a77337 30 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"Test String", CENTER_MODE);
TwinToe 0:dfbc18a77337 31 wait(2);
TwinToe 1:7f6f6627aacd 32 lcd.Clear(LCD_COLOR_RED);
TwinToe 0:dfbc18a77337 33
TwinToe 1:7f6f6627aacd 34 while(1) {
TwinToe 1:7f6f6627aacd 35 x = TS_State.touchX[idx];
TwinToe 1:7f6f6627aacd 36 y = TS_State.touchY[idx];
TwinToe 1:7f6f6627aacd 37 sprintf((char*)text, "Touch %d: x=%d y=%d ", touches, x, y);
TwinToe 1:7f6f6627aacd 38 lcd.DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
TwinToe 1:7f6f6627aacd 39 ts.GetState(&TS_State);
TwinToe 1:7f6f6627aacd 40 lcd.DrawRect(0, 190, 80, 80);
TwinToe 1:7f6f6627aacd 41 lcd.DrawRect(133, 190, 80, 80);
TwinToe 1:7f6f6627aacd 42 lcd.DrawRect(266, 190, 80, 80);
TwinToe 1:7f6f6627aacd 43 lcd.DrawRect(399, 190, 80, 80);
TwinToe 1:7f6f6627aacd 44
TwinToe 1:7f6f6627aacd 45 if ((TS_State.touchDetected == 0) && (touched == true))
TwinToe 1:7f6f6627aacd 46 {
TwinToe 1:7f6f6627aacd 47 touches++;
TwinToe 1:7f6f6627aacd 48 touched = false;
TwinToe 0:dfbc18a77337 49
TwinToe 1:7f6f6627aacd 50 }
TwinToe 1:7f6f6627aacd 51 if (TS_State.touchDetected == 1)
TwinToe 1:7f6f6627aacd 52 {
TwinToe 1:7f6f6627aacd 53 touched = true;
TwinToe 1:7f6f6627aacd 54 }
TwinToe 0:dfbc18a77337 55
TwinToe 1:7f6f6627aacd 56 if ((TS_State.touchDetected) && (TS_State.touchX[0] < 100) && (TS_State.touchY[0] > 190 ))
TwinToe 1:7f6f6627aacd 57 {
TwinToe 1:7f6f6627aacd 58 led = 1;
TwinToe 1:7f6f6627aacd 59 }
TwinToe 1:7f6f6627aacd 60 else
TwinToe 1:7f6f6627aacd 61 {
TwinToe 1:7f6f6627aacd 62 led = 0;
TwinToe 1:7f6f6627aacd 63 }
TwinToe 1:7f6f6627aacd 64 }
TwinToe 0:dfbc18a77337 65 }