LCD TS
Dependencies: mbed LCD_DISCO_F746NG BSP_DISCO_F746NG
Revision 3:0b57082839f2, committed 23 months ago
- Comitter:
- James1208
- Date:
- Thu Jun 16 08:47:53 2022 +0000
- Parent:
- 2:ab13f201cdc0
- Child:
- 7:896fb491fbfb
- Commit message:
- Disco Display
Changed in this revision
--- a/BSP_DISCO_F746NG.lib Wed Oct 07 15:46:30 2015 +0000 +++ b/BSP_DISCO_F746NG.lib Thu Jun 16 08:47:53 2022 +0000 @@ -1,1 +1,1 @@ -https://developer.mbed.org/teams/ST/code/BSP_DISCO_F746NG/#c9112f0c67e3 +http://developer.mbed.org/teams/ST/code/BSP_DISCO_F746NG/#458ab1edf6b2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TS_DISCO_F746NG.lib Thu Jun 16 08:47:53 2022 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/teams/ST/code/TS_DISCO_F746NG/#fe0cf5e2960f
--- a/main.cpp Wed Oct 07 15:46:30 2015 +0000 +++ b/main.cpp Thu Jun 16 08:47:53 2022 +0000 @@ -1,46 +1,207 @@ #include "mbed.h" +#include "TS_DISCO_F746NG.h" #include "LCD_DISCO_F746NG.h" LCD_DISCO_F746NG lcd; +TS_DISCO_F746NG ts; -DigitalOut led1(LED1); +InterruptIn draw_start(D7); +InterruptIn draw_ask(D6); +InterruptIn draw_pass(D5); +InterruptIn draw_fail(D4); +InterruptIn draw_proc(D3); + +DigitalOut ack(D2); +DigitalOut yes_no(D1); +DigitalOut ck(D0); + +int page = 5; + +void draw_start_rtn() +{ + page = 0; +} // end + +void draw_ask_rtn() +{ + page = 1; +} // end + +void draw_pass_rtn() +{ + page = 2; +} // end + +void draw_fail_rtn() +{ + page = 3; +} // end + +void draw_proc_rtn() +{ + page = 4; +} // end int main() -{ - led1 = 1; +{ + + TS_StateTypeDef TS_State; + uint8_t status; + + int lcd_width = lcd.GetXSize(); + + draw_ask.mode(PullDown); + draw_start.mode(PullDown); + draw_pass.mode(PullDown); + draw_fail.mode(PullDown); + draw_proc.mode(PullDown); + + draw_ask.rise(&draw_ask_rtn); + draw_start.rise(&draw_start_rtn); + draw_pass.rise(&draw_pass_rtn); + draw_fail.rise(&draw_fail_rtn); + draw_proc.rise(&draw_proc_rtn); + + status = ts.Init(lcd_width, lcd.GetYSize()); + + ack = 1; + yes_no = 1; + ck = 1; + + if (status != TS_OK) { + lcd.Clear(LCD_COLOR_RED); + lcd.SetBackColor(LCD_COLOR_RED); + lcd.SetTextColor(LCD_COLOR_BLACK); + lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE); + wait(1); + } // if (status != TS_OK) - lcd.DisplayStringAt(0, LINE(1), (uint8_t *)"MBED EXAMPLE", CENTER_MODE); - wait(1); - - while(1) - { - lcd.Clear(LCD_COLOR_BLUE); - lcd.SetBackColor(LCD_COLOR_BLUE); - lcd.SetTextColor(LCD_COLOR_WHITE); - wait(0.3); - lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"DISCOVERY STM32F746NG", CENTER_MODE); - wait(1); + while(1) { + switch (page) { + case 0: + lcd.Clear(LCD_COLOR_WHITE); + lcd.SetBackColor(LCD_COLOR_WHITE); + lcd.SetTextColor(LCD_COLOR_BLACK); + wait(0.1); + lcd.DisplayStringAt(0, LINE(4), (uint8_t *)"INSERT DVD TRAY", CENTER_MODE); + lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"AND LABEL SHEET", CENTER_MODE); + lcd.DisplayStringAt(0, LINE(7), (uint8_t *)"[ START ]", CENTER_MODE); + + do { + wait_ms(50); + ts.GetState(&TS_State); + } while(!(TS_State.touchDetected)); + + do { + wait_ms(50); + ts.GetState(&TS_State); + } while(TS_State.touchDetected); + + ack = 0; + wait_ms(50); + ack = 1; + + page = 5; + break; + + case 1: + lcd.Clear(LCD_COLOR_YELLOW); + lcd.SetBackColor(LCD_COLOR_YELLOW); + lcd.SetTextColor(LCD_COLOR_BLACK); + wait(0.1); + lcd.DisplayStringAt(0, LINE(4), (uint8_t *)"MORE LABEL SHEETS?", CENTER_MODE); + lcd.DisplayStringAt(0, LINE(7), (uint8_t *)"[ NO ]", LEFT_MODE); + lcd.DisplayStringAt(0, LINE(7), (uint8_t *)"[ YES ]", RIGHT_MODE); + + do { + wait_ms(50); + ts.GetState(&TS_State); + } while(!(TS_State.touchDetected)); + + do { + wait_ms(50); + ts.GetState(&TS_State); + } while(TS_State.touchDetected); - lcd.Clear(LCD_COLOR_GREEN); - - lcd.SetTextColor(LCD_COLOR_BLUE); - lcd.DrawRect(10, 20, 50, 50); - wait(0.1); - lcd.SetTextColor(LCD_COLOR_BROWN); - lcd.DrawCircle(80, 80, 50); - wait(0.1); - lcd.SetTextColor(LCD_COLOR_YELLOW); - lcd.DrawEllipse(150, 150, 50, 100); - wait(0.1); - lcd.SetTextColor(LCD_COLOR_RED); - lcd.FillCircle(200, 200, 40); - wait(1); + if (TS_State.touchX[0] > (lcd_width/2)) { + yes_no = 1; + wait_ms(50); + ck = 0; + wait_ms(50); + ck = 1; + } else { + yes_no = 0; + wait_ms(50); + ck = 0; + wait_ms(50); + ck = 1; + } // if (TS_State.touchX[0] > (lcd_width/2)) + + page = 5; + break; + + case 2: + lcd.Clear(LCD_COLOR_GREEN); + lcd.SetBackColor(LCD_COLOR_GREEN); + lcd.SetTextColor(LCD_COLOR_BLACK); + wait(0.1); + lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"PASS", CENTER_MODE); + lcd.DisplayStringAt(0, LINE(8), (uint8_t *)"[ CONTINUE ]", CENTER_MODE); + + do { + wait_ms(50); + ts.GetState(&TS_State); + } while(!(TS_State.touchDetected)); + + do { + wait_ms(50); + ts.GetState(&TS_State); + } while(TS_State.touchDetected); + + ack = 0; + wait_ms(50); + ack = 1; - lcd.SetBackColor(LCD_COLOR_ORANGE); - lcd.SetTextColor(LCD_COLOR_CYAN); - lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"HAVE FUN !!!", CENTER_MODE); - wait(1); + page = 5; + break; + + case 3: + lcd.Clear(LCD_COLOR_RED); + lcd.SetBackColor(LCD_COLOR_RED); + lcd.SetTextColor(LCD_COLOR_BLACK); + wait(0.1); + lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"FAIL", CENTER_MODE); + lcd.DisplayStringAt(0, LINE(8), (uint8_t *)"[ CONTINUE ]", CENTER_MODE); + + do { + wait_ms(50); + ts.GetState(&TS_State); + } while(!(TS_State.touchDetected)); + + do { + wait_ms(50); + ts.GetState(&TS_State); + } while(TS_State.touchDetected); - led1 = !led1; - } -} + ack = 0; + wait_ms(50); + ack = 1; + + page = 5; + break; + + case 4: + lcd.Clear(LCD_COLOR_YELLOW); + lcd.SetBackColor(LCD_COLOR_YELLOW); + lcd.SetTextColor(LCD_COLOR_BLACK); + wait(0.1); + lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"PROCESSING...", CENTER_MODE); + + page = 5; + break; + + default: + break; + } // switch (page) + } // while (1) +} // end
--- a/mbed.bld Wed Oct 07 15:46:30 2015 +0000 +++ b/mbed.bld Thu Jun 16 08:47:53 2022 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/mbed_official/code/mbed/builds/34e6b704fe68 \ No newline at end of file +http://mbed.org/users/mbed_official/code/mbed/builds/aae6fcc7d9bb \ No newline at end of file