Smart Home Controller
Dependencies: TS_DISCO_F746NG mbed LCD_DISCO_F746NG BSP_DISCO_F746NG sMotor
main.cpp@1:7f6f6627aacd, 2019-01-08 (annotated)
- 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?
User | Revision | Line number | New 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 | } |