LCD TS

Dependencies:   mbed LCD_DISCO_F746NG BSP_DISCO_F746NG

Committer:
James1208
Date:
Thu Jun 16 08:47:53 2022 +0000
Revision:
3:0b57082839f2
Parent:
0:b045ca817e2c
Child:
7:896fb491fbfb
Disco Display

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bcostm 0:b045ca817e2c 1 #include "mbed.h"
James1208 3:0b57082839f2 2 #include "TS_DISCO_F746NG.h"
bcostm 0:b045ca817e2c 3 #include "LCD_DISCO_F746NG.h"
bcostm 0:b045ca817e2c 4
bcostm 0:b045ca817e2c 5 LCD_DISCO_F746NG lcd;
James1208 3:0b57082839f2 6 TS_DISCO_F746NG ts;
bcostm 0:b045ca817e2c 7
James1208 3:0b57082839f2 8 InterruptIn draw_start(D7);
James1208 3:0b57082839f2 9 InterruptIn draw_ask(D6);
James1208 3:0b57082839f2 10 InterruptIn draw_pass(D5);
James1208 3:0b57082839f2 11 InterruptIn draw_fail(D4);
James1208 3:0b57082839f2 12 InterruptIn draw_proc(D3);
James1208 3:0b57082839f2 13
James1208 3:0b57082839f2 14 DigitalOut ack(D2);
James1208 3:0b57082839f2 15 DigitalOut yes_no(D1);
James1208 3:0b57082839f2 16 DigitalOut ck(D0);
James1208 3:0b57082839f2 17
James1208 3:0b57082839f2 18 int page = 5;
James1208 3:0b57082839f2 19
James1208 3:0b57082839f2 20 void draw_start_rtn()
James1208 3:0b57082839f2 21 {
James1208 3:0b57082839f2 22 page = 0;
James1208 3:0b57082839f2 23 } // end
James1208 3:0b57082839f2 24
James1208 3:0b57082839f2 25 void draw_ask_rtn()
James1208 3:0b57082839f2 26 {
James1208 3:0b57082839f2 27 page = 1;
James1208 3:0b57082839f2 28 } // end
James1208 3:0b57082839f2 29
James1208 3:0b57082839f2 30 void draw_pass_rtn()
James1208 3:0b57082839f2 31 {
James1208 3:0b57082839f2 32 page = 2;
James1208 3:0b57082839f2 33 } // end
James1208 3:0b57082839f2 34
James1208 3:0b57082839f2 35 void draw_fail_rtn()
James1208 3:0b57082839f2 36 {
James1208 3:0b57082839f2 37 page = 3;
James1208 3:0b57082839f2 38 } // end
James1208 3:0b57082839f2 39
James1208 3:0b57082839f2 40 void draw_proc_rtn()
James1208 3:0b57082839f2 41 {
James1208 3:0b57082839f2 42 page = 4;
James1208 3:0b57082839f2 43 } // end
bcostm 0:b045ca817e2c 44
bcostm 0:b045ca817e2c 45 int main()
James1208 3:0b57082839f2 46 {
James1208 3:0b57082839f2 47
James1208 3:0b57082839f2 48 TS_StateTypeDef TS_State;
James1208 3:0b57082839f2 49 uint8_t status;
James1208 3:0b57082839f2 50
James1208 3:0b57082839f2 51 int lcd_width = lcd.GetXSize();
James1208 3:0b57082839f2 52
James1208 3:0b57082839f2 53 draw_ask.mode(PullDown);
James1208 3:0b57082839f2 54 draw_start.mode(PullDown);
James1208 3:0b57082839f2 55 draw_pass.mode(PullDown);
James1208 3:0b57082839f2 56 draw_fail.mode(PullDown);
James1208 3:0b57082839f2 57 draw_proc.mode(PullDown);
James1208 3:0b57082839f2 58
James1208 3:0b57082839f2 59 draw_ask.rise(&draw_ask_rtn);
James1208 3:0b57082839f2 60 draw_start.rise(&draw_start_rtn);
James1208 3:0b57082839f2 61 draw_pass.rise(&draw_pass_rtn);
James1208 3:0b57082839f2 62 draw_fail.rise(&draw_fail_rtn);
James1208 3:0b57082839f2 63 draw_proc.rise(&draw_proc_rtn);
James1208 3:0b57082839f2 64
James1208 3:0b57082839f2 65 status = ts.Init(lcd_width, lcd.GetYSize());
James1208 3:0b57082839f2 66
James1208 3:0b57082839f2 67 ack = 1;
James1208 3:0b57082839f2 68 yes_no = 1;
James1208 3:0b57082839f2 69 ck = 1;
James1208 3:0b57082839f2 70
James1208 3:0b57082839f2 71 if (status != TS_OK) {
James1208 3:0b57082839f2 72 lcd.Clear(LCD_COLOR_RED);
James1208 3:0b57082839f2 73 lcd.SetBackColor(LCD_COLOR_RED);
James1208 3:0b57082839f2 74 lcd.SetTextColor(LCD_COLOR_BLACK);
James1208 3:0b57082839f2 75 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE);
James1208 3:0b57082839f2 76 wait(1);
James1208 3:0b57082839f2 77 } // if (status != TS_OK)
bcostm 0:b045ca817e2c 78
James1208 3:0b57082839f2 79 while(1) {
James1208 3:0b57082839f2 80 switch (page) {
James1208 3:0b57082839f2 81 case 0:
James1208 3:0b57082839f2 82 lcd.Clear(LCD_COLOR_WHITE);
James1208 3:0b57082839f2 83 lcd.SetBackColor(LCD_COLOR_WHITE);
James1208 3:0b57082839f2 84 lcd.SetTextColor(LCD_COLOR_BLACK);
James1208 3:0b57082839f2 85 wait(0.1);
James1208 3:0b57082839f2 86 lcd.DisplayStringAt(0, LINE(4), (uint8_t *)"INSERT DVD TRAY", CENTER_MODE);
James1208 3:0b57082839f2 87 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"AND LABEL SHEET", CENTER_MODE);
James1208 3:0b57082839f2 88 lcd.DisplayStringAt(0, LINE(7), (uint8_t *)"[ START ]", CENTER_MODE);
James1208 3:0b57082839f2 89
James1208 3:0b57082839f2 90 do {
James1208 3:0b57082839f2 91 wait_ms(50);
James1208 3:0b57082839f2 92 ts.GetState(&TS_State);
James1208 3:0b57082839f2 93 } while(!(TS_State.touchDetected));
James1208 3:0b57082839f2 94
James1208 3:0b57082839f2 95 do {
James1208 3:0b57082839f2 96 wait_ms(50);
James1208 3:0b57082839f2 97 ts.GetState(&TS_State);
James1208 3:0b57082839f2 98 } while(TS_State.touchDetected);
James1208 3:0b57082839f2 99
James1208 3:0b57082839f2 100 ack = 0;
James1208 3:0b57082839f2 101 wait_ms(50);
James1208 3:0b57082839f2 102 ack = 1;
James1208 3:0b57082839f2 103
James1208 3:0b57082839f2 104 page = 5;
James1208 3:0b57082839f2 105 break;
James1208 3:0b57082839f2 106
James1208 3:0b57082839f2 107 case 1:
James1208 3:0b57082839f2 108 lcd.Clear(LCD_COLOR_YELLOW);
James1208 3:0b57082839f2 109 lcd.SetBackColor(LCD_COLOR_YELLOW);
James1208 3:0b57082839f2 110 lcd.SetTextColor(LCD_COLOR_BLACK);
James1208 3:0b57082839f2 111 wait(0.1);
James1208 3:0b57082839f2 112 lcd.DisplayStringAt(0, LINE(4), (uint8_t *)"MORE LABEL SHEETS?", CENTER_MODE);
James1208 3:0b57082839f2 113 lcd.DisplayStringAt(0, LINE(7), (uint8_t *)"[ NO ]", LEFT_MODE);
James1208 3:0b57082839f2 114 lcd.DisplayStringAt(0, LINE(7), (uint8_t *)"[ YES ]", RIGHT_MODE);
James1208 3:0b57082839f2 115
James1208 3:0b57082839f2 116 do {
James1208 3:0b57082839f2 117 wait_ms(50);
James1208 3:0b57082839f2 118 ts.GetState(&TS_State);
James1208 3:0b57082839f2 119 } while(!(TS_State.touchDetected));
James1208 3:0b57082839f2 120
James1208 3:0b57082839f2 121 do {
James1208 3:0b57082839f2 122 wait_ms(50);
James1208 3:0b57082839f2 123 ts.GetState(&TS_State);
James1208 3:0b57082839f2 124 } while(TS_State.touchDetected);
bcostm 0:b045ca817e2c 125
James1208 3:0b57082839f2 126 if (TS_State.touchX[0] > (lcd_width/2)) {
James1208 3:0b57082839f2 127 yes_no = 1;
James1208 3:0b57082839f2 128 wait_ms(50);
James1208 3:0b57082839f2 129 ck = 0;
James1208 3:0b57082839f2 130 wait_ms(50);
James1208 3:0b57082839f2 131 ck = 1;
James1208 3:0b57082839f2 132 } else {
James1208 3:0b57082839f2 133 yes_no = 0;
James1208 3:0b57082839f2 134 wait_ms(50);
James1208 3:0b57082839f2 135 ck = 0;
James1208 3:0b57082839f2 136 wait_ms(50);
James1208 3:0b57082839f2 137 ck = 1;
James1208 3:0b57082839f2 138 } // if (TS_State.touchX[0] > (lcd_width/2))
James1208 3:0b57082839f2 139
James1208 3:0b57082839f2 140 page = 5;
James1208 3:0b57082839f2 141 break;
James1208 3:0b57082839f2 142
James1208 3:0b57082839f2 143 case 2:
James1208 3:0b57082839f2 144 lcd.Clear(LCD_COLOR_GREEN);
James1208 3:0b57082839f2 145 lcd.SetBackColor(LCD_COLOR_GREEN);
James1208 3:0b57082839f2 146 lcd.SetTextColor(LCD_COLOR_BLACK);
James1208 3:0b57082839f2 147 wait(0.1);
James1208 3:0b57082839f2 148 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"PASS", CENTER_MODE);
James1208 3:0b57082839f2 149 lcd.DisplayStringAt(0, LINE(8), (uint8_t *)"[ CONTINUE ]", CENTER_MODE);
James1208 3:0b57082839f2 150
James1208 3:0b57082839f2 151 do {
James1208 3:0b57082839f2 152 wait_ms(50);
James1208 3:0b57082839f2 153 ts.GetState(&TS_State);
James1208 3:0b57082839f2 154 } while(!(TS_State.touchDetected));
James1208 3:0b57082839f2 155
James1208 3:0b57082839f2 156 do {
James1208 3:0b57082839f2 157 wait_ms(50);
James1208 3:0b57082839f2 158 ts.GetState(&TS_State);
James1208 3:0b57082839f2 159 } while(TS_State.touchDetected);
James1208 3:0b57082839f2 160
James1208 3:0b57082839f2 161 ack = 0;
James1208 3:0b57082839f2 162 wait_ms(50);
James1208 3:0b57082839f2 163 ack = 1;
bcostm 0:b045ca817e2c 164
James1208 3:0b57082839f2 165 page = 5;
James1208 3:0b57082839f2 166 break;
James1208 3:0b57082839f2 167
James1208 3:0b57082839f2 168 case 3:
James1208 3:0b57082839f2 169 lcd.Clear(LCD_COLOR_RED);
James1208 3:0b57082839f2 170 lcd.SetBackColor(LCD_COLOR_RED);
James1208 3:0b57082839f2 171 lcd.SetTextColor(LCD_COLOR_BLACK);
James1208 3:0b57082839f2 172 wait(0.1);
James1208 3:0b57082839f2 173 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"FAIL", CENTER_MODE);
James1208 3:0b57082839f2 174 lcd.DisplayStringAt(0, LINE(8), (uint8_t *)"[ CONTINUE ]", CENTER_MODE);
James1208 3:0b57082839f2 175
James1208 3:0b57082839f2 176 do {
James1208 3:0b57082839f2 177 wait_ms(50);
James1208 3:0b57082839f2 178 ts.GetState(&TS_State);
James1208 3:0b57082839f2 179 } while(!(TS_State.touchDetected));
James1208 3:0b57082839f2 180
James1208 3:0b57082839f2 181 do {
James1208 3:0b57082839f2 182 wait_ms(50);
James1208 3:0b57082839f2 183 ts.GetState(&TS_State);
James1208 3:0b57082839f2 184 } while(TS_State.touchDetected);
bcostm 0:b045ca817e2c 185
James1208 3:0b57082839f2 186 ack = 0;
James1208 3:0b57082839f2 187 wait_ms(50);
James1208 3:0b57082839f2 188 ack = 1;
James1208 3:0b57082839f2 189
James1208 3:0b57082839f2 190 page = 5;
James1208 3:0b57082839f2 191 break;
James1208 3:0b57082839f2 192
James1208 3:0b57082839f2 193 case 4:
James1208 3:0b57082839f2 194 lcd.Clear(LCD_COLOR_YELLOW);
James1208 3:0b57082839f2 195 lcd.SetBackColor(LCD_COLOR_YELLOW);
James1208 3:0b57082839f2 196 lcd.SetTextColor(LCD_COLOR_BLACK);
James1208 3:0b57082839f2 197 wait(0.1);
James1208 3:0b57082839f2 198 lcd.DisplayStringAt(0, LINE(5), (uint8_t *)"PROCESSING...", CENTER_MODE);
James1208 3:0b57082839f2 199
James1208 3:0b57082839f2 200 page = 5;
James1208 3:0b57082839f2 201 break;
James1208 3:0b57082839f2 202
James1208 3:0b57082839f2 203 default:
James1208 3:0b57082839f2 204 break;
James1208 3:0b57082839f2 205 } // switch (page)
James1208 3:0b57082839f2 206 } // while (1)
James1208 3:0b57082839f2 207 } // end