
Projet Interfaçage
Dependencies: BSP_DISCO_F746NG
main.cpp@4:bb9c545c6d7f, 2021-06-22 (annotated)
- Committer:
- liroy_theilor
- Date:
- Tue Jun 22 12:38:21 2021 +0000
- Revision:
- 4:bb9c545c6d7f
- Parent:
- 3:9f66aabe7b3b
Programme
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bcostm | 0:9933f7db9a9b | 1 | #include "mbed.h" |
Jerome Coutant
3:9f66aabe7b3b
|
2
|
#include "stm32746g_discovery_lcd.h"
|
|
Jerome Coutant
3:9f66aabe7b3b
|
3
|
#include "stm32746g_discovery_ts.h"
|
|
bcostm | 0:9933f7db9a9b | 4 | |
liroy_theilor | 4:bb9c545c6d7f | 5 | char affiche[30]; |
liroy_theilor | 4:bb9c545c6d7f | 6 | int lecture; |
liroy_theilor | 4:bb9c545c6d7f | 7 | int compteur=0; |
liroy_theilor | 4:bb9c545c6d7f | 8 | bool obstak=false; |
liroy_theilor | 4:bb9c545c6d7f | 9 | int colis=0; |
liroy_theilor | 4:bb9c545c6d7f | 10 | |
liroy_theilor | 4:bb9c545c6d7f | 11 | void capteurTOR (); |
liroy_theilor | 4:bb9c545c6d7f | 12 | |
liroy_theilor | 4:bb9c545c6d7f | 13 | |
liroy_theilor | 4:bb9c545c6d7f | 14 | PwmOut servo(D1); // Servomoteur |
liroy_theilor | 4:bb9c545c6d7f | 15 | DigitalIn capteur(A0); // Capteur de lettre |
liroy_theilor | 4:bb9c545c6d7f | 16 | |
liroy_theilor | 4:bb9c545c6d7f | 17 | |
bcostm | 0:9933f7db9a9b | 18 | int main() |
bcostm | 0:9933f7db9a9b | 19 | { |
bcostm | 0:9933f7db9a9b | 20 | TS_StateTypeDef TS_State; |
bcostm | 0:9933f7db9a9b | 21 | uint16_t x, y; |
liroy_theilor | 4:bb9c545c6d7f | 22 | uint8_t text[30]; |
liroy_theilor | 4:bb9c545c6d7f | 23 | int i; |
liroy_theilor | 4:bb9c545c6d7f | 24 | char PSWD[4]; |
bcostm | 0:9933f7db9a9b | 25 | uint8_t status; |
bcostm | 0:9933f7db9a9b | 26 | uint8_t idx; |
bcostm | 0:9933f7db9a9b | 27 | uint8_t cleared = 0; |
bcostm | 0:9933f7db9a9b | 28 | uint8_t prev_nb_touches = 0; |
bcostm | 0:9933f7db9a9b | 29 | |
Jerome Coutant
3:9f66aabe7b3b
|
30
|
BSP_LCD_Init();
|
|
Jerome Coutant
3:9f66aabe7b3b
|
31
|
BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS);
|
|
Jerome Coutant
3:9f66aabe7b3b
|
32
|
BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER);
|
|
bcostm | 0:9933f7db9a9b | 33 | |
Jerome Coutant
3:9f66aabe7b3b
|
34
|
BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN DEMO", CENTER_MODE);
|
|
Jerome Coutant
3:9f66aabe7b3b
|
35
|
HAL_Delay(1000);
|
|
Jerome Coutant
3:9f66aabe7b3b
|
36
|
|
|
Jerome Coutant
3:9f66aabe7b3b
|
37
|
status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize());
|
|
liroy_theilor | 4:bb9c545c6d7f | 38 | if (status != TS_OK) |
liroy_theilor | 4:bb9c545c6d7f | 39 | { |
Jerome Coutant
3:9f66aabe7b3b
|
40
|
BSP_LCD_Clear(LCD_COLOR_RED);
|
|
Jerome Coutant
3:9f66aabe7b3b
|
41
|
BSP_LCD_SetBackColor(LCD_COLOR_RED);
|
|
Jerome Coutant
3:9f66aabe7b3b
|
42
|
BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
|
|
Jerome Coutant
3:9f66aabe7b3b
|
43
|
BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE);
|
|
liroy_theilor | 4:bb9c545c6d7f | 44 | } |
liroy_theilor | 4:bb9c545c6d7f | 45 | else |
liroy_theilor | 4:bb9c545c6d7f | 46 | { |
Jerome Coutant
3:9f66aabe7b3b
|
47
|
BSP_LCD_Clear(LCD_COLOR_GREEN);
|
|
Jerome Coutant
3:9f66aabe7b3b
|
48
|
BSP_LCD_SetBackColor(LCD_COLOR_GREEN);
|
|
Jerome Coutant
3:9f66aabe7b3b
|
49
|
BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
|
|
Jerome Coutant
3:9f66aabe7b3b
|
50
|
BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT OK", CENTER_MODE);
|
|
bcostm | 0:9933f7db9a9b | 51 | } |
bcostm | 0:9933f7db9a9b | 52 | |
Jerome Coutant
3:9f66aabe7b3b
|
53
|
HAL_Delay(1000);
|
|
Jerome Coutant
3:9f66aabe7b3b
|
54
|
BSP_LCD_SetFont(&Font12);
|
|
liroy_theilor | 4:bb9c545c6d7f | 55 | |
liroy_theilor | 4:bb9c545c6d7f | 56 | |
liroy_theilor | 4:bb9c545c6d7f | 57 | //COULEUR DU FOND D'écran |
liroy_theilor | 4:bb9c545c6d7f | 58 | BSP_LCD_SetBackColor(LCD_COLOR_DARKCYAN); |
liroy_theilor | 4:bb9c545c6d7f | 59 | // COULEUR ECRITURE |
Jerome Coutant
3:9f66aabe7b3b
|
60
|
BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
|
|
liroy_theilor | 4:bb9c545c6d7f | 61 | BSP_LCD_Clear(LCD_COLOR_DARKCYAN ); |
liroy_theilor | 4:bb9c545c6d7f | 62 | |
liroy_theilor | 4:bb9c545c6d7f | 63 | sprintf((char*)text, "BOITES AUX LETTRES "); |
liroy_theilor | 4:bb9c545c6d7f | 64 | BSP_LCD_DisplayStringAt(20, LINE(1), (uint8_t *)&text, CENTER_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 65 | |
liroy_theilor | 4:bb9c545c6d7f | 66 | sprintf((char*)text, "THEILOR LIROY "); |
liroy_theilor | 4:bb9c545c6d7f | 67 | BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)&text, RIGHT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 68 | |
liroy_theilor | 4:bb9c545c6d7f | 69 | |
liroy_theilor | 4:bb9c545c6d7f | 70 | |
liroy_theilor | 4:bb9c545c6d7f | 71 | |
liroy_theilor | 4:bb9c545c6d7f | 72 | |
liroy_theilor | 4:bb9c545c6d7f | 73 | BSP_LCD_SetFont(&Font16); |
liroy_theilor | 4:bb9c545c6d7f | 74 | sprintf((char*)text, "1"); |
liroy_theilor | 4:bb9c545c6d7f | 75 | BSP_LCD_DisplayStringAt(211, LINE(8), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 76 | |
liroy_theilor | 4:bb9c545c6d7f | 77 | BSP_LCD_SetFont(&Font16); |
liroy_theilor | 4:bb9c545c6d7f | 78 | sprintf((char*)text, "2"); |
liroy_theilor | 4:bb9c545c6d7f | 79 | BSP_LCD_DisplayStringAt(25, LINE(8), (uint8_t *)&text, CENTER_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 80 | |
liroy_theilor | 4:bb9c545c6d7f | 81 | BSP_LCD_SetFont(&Font16); |
liroy_theilor | 4:bb9c545c6d7f | 82 | sprintf((char*)text, "3"); |
liroy_theilor | 4:bb9c545c6d7f | 83 | BSP_LCD_DisplayStringAt(70, LINE(8), (uint8_t *)&text, CENTER_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 84 | |
liroy_theilor | 4:bb9c545c6d7f | 85 | |
liroy_theilor | 4:bb9c545c6d7f | 86 | BSP_LCD_SetFont(&Font16); |
liroy_theilor | 4:bb9c545c6d7f | 87 | sprintf((char*)text, "4"); |
liroy_theilor | 4:bb9c545c6d7f | 88 | BSP_LCD_DisplayStringAt(211, LINE(11), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 89 | |
liroy_theilor | 4:bb9c545c6d7f | 90 | BSP_LCD_SetFont(&Font16); |
liroy_theilor | 4:bb9c545c6d7f | 91 | sprintf((char*)text, "5"); |
liroy_theilor | 4:bb9c545c6d7f | 92 | BSP_LCD_DisplayStringAt(25, LINE(11), (uint8_t *)&text, CENTER_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 93 | |
liroy_theilor | 4:bb9c545c6d7f | 94 | BSP_LCD_SetFont(&Font16); |
liroy_theilor | 4:bb9c545c6d7f | 95 | sprintf((char*)text, "6"); |
liroy_theilor | 4:bb9c545c6d7f | 96 | BSP_LCD_DisplayStringAt(70, LINE(11), (uint8_t *)&text, CENTER_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 97 | |
liroy_theilor | 4:bb9c545c6d7f | 98 | BSP_LCD_SetFont(&Font16); |
liroy_theilor | 4:bb9c545c6d7f | 99 | sprintf((char*)text, "7"); |
liroy_theilor | 4:bb9c545c6d7f | 100 | BSP_LCD_DisplayStringAt(211, LINE(14), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 101 | |
liroy_theilor | 4:bb9c545c6d7f | 102 | BSP_LCD_SetFont(&Font16); |
liroy_theilor | 4:bb9c545c6d7f | 103 | sprintf((char*)text, "8"); |
liroy_theilor | 4:bb9c545c6d7f | 104 | BSP_LCD_DisplayStringAt(25, LINE(14), (uint8_t *)&text, CENTER_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 105 | |
liroy_theilor | 4:bb9c545c6d7f | 106 | BSP_LCD_SetFont(&Font16); |
liroy_theilor | 4:bb9c545c6d7f | 107 | sprintf((char*)text, "9"); |
liroy_theilor | 4:bb9c545c6d7f | 108 | BSP_LCD_DisplayStringAt(70, LINE(14), (uint8_t *)&text, CENTER_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 109 | |
liroy_theilor | 4:bb9c545c6d7f | 110 | BSP_LCD_SetFont(&Font16); |
liroy_theilor | 4:bb9c545c6d7f | 111 | sprintf((char*)text, "0"); |
liroy_theilor | 4:bb9c545c6d7f | 112 | BSP_LCD_DisplayStringAt(18, LINE(16), (uint8_t *)&text, CENTER_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 113 | |
liroy_theilor | 4:bb9c545c6d7f | 114 | BSP_LCD_SetTextColor(LCD_COLOR_ORANGE); |
liroy_theilor | 4:bb9c545c6d7f | 115 | //Position du cadre |
liroy_theilor | 4:bb9c545c6d7f | 116 | BSP_LCD_DrawRect(200, 60, 100 ,40); |
liroy_theilor | 4:bb9c545c6d7f | 117 | |
liroy_theilor | 4:bb9c545c6d7f | 118 | // CLAVIER |
liroy_theilor | 4:bb9c545c6d7f | 119 | |
liroy_theilor | 4:bb9c545c6d7f | 120 | // BSP_LCD_DrawRect(150, 150, 230,120); |
liroy_theilor | 4:bb9c545c6d7f | 121 | |
liroy_theilor | 4:bb9c545c6d7f | 122 | //LIGNE 1 |
liroy_theilor | 4:bb9c545c6d7f | 123 | BSP_LCD_DrawCircle(215, 140,20); |
liroy_theilor | 4:bb9c545c6d7f | 124 | BSP_LCD_DrawCircle(260, 140,20); |
liroy_theilor | 4:bb9c545c6d7f | 125 | BSP_LCD_DrawCircle(305, 140,20); |
liroy_theilor | 4:bb9c545c6d7f | 126 | |
liroy_theilor | 4:bb9c545c6d7f | 127 | // LIGNE 2 |
liroy_theilor | 4:bb9c545c6d7f | 128 | |
liroy_theilor | 4:bb9c545c6d7f | 129 | BSP_LCD_DrawCircle(215, 182,20); |
liroy_theilor | 4:bb9c545c6d7f | 130 | BSP_LCD_DrawCircle(260,182,20); |
liroy_theilor | 4:bb9c545c6d7f | 131 | BSP_LCD_DrawCircle(305, 182,20); |
liroy_theilor | 4:bb9c545c6d7f | 132 | |
liroy_theilor | 4:bb9c545c6d7f | 133 | // LIGNE 3 |
liroy_theilor | 4:bb9c545c6d7f | 134 | BSP_LCD_DrawCircle(215, 224,20); |
liroy_theilor | 4:bb9c545c6d7f | 135 | BSP_LCD_DrawCircle(260, 224,20); |
liroy_theilor | 4:bb9c545c6d7f | 136 | BSP_LCD_DrawCircle(305, 224,20); |
liroy_theilor | 4:bb9c545c6d7f | 137 | BSP_LCD_DrawRect(220, 249, 60,30); |
liroy_theilor | 4:bb9c545c6d7f | 138 | |
liroy_theilor | 4:bb9c545c6d7f | 139 | servo.pulsewidth_us (2000); |
bcostm | 0:9933f7db9a9b | 140 | |
bcostm | 0:9933f7db9a9b | 141 | while(1) { |
liroy_theilor | 4:bb9c545c6d7f | 142 | BSP_LCD_SetFont(&Font12); |
liroy_theilor | 4:bb9c545c6d7f | 143 | |
liroy_theilor | 4:bb9c545c6d7f | 144 | |
liroy_theilor | 4:bb9c545c6d7f | 145 | capteurTOR(); |
liroy_theilor | 4:bb9c545c6d7f | 146 | |
liroy_theilor | 4:bb9c545c6d7f | 147 | |
liroy_theilor | 4:bb9c545c6d7f | 148 | |
bcostm | 0:9933f7db9a9b | 149 | |
Jerome Coutant
3:9f66aabe7b3b
|
150
|
BSP_TS_GetState(&TS_State);
|
|
bcostm | 0:9933f7db9a9b | 151 | if (TS_State.touchDetected) { |
bcostm | 0:9933f7db9a9b | 152 | // Clear lines corresponding to old touches coordinates |
bcostm | 0:9933f7db9a9b | 153 | if (TS_State.touchDetected < prev_nb_touches) { |
bcostm | 0:9933f7db9a9b | 154 | for (idx = (TS_State.touchDetected + 1); idx <= 5; idx++) { |
Jerome Coutant
3:9f66aabe7b3b
|
155
|
BSP_LCD_ClearStringLine(idx);
|
|
bcostm | 0:9933f7db9a9b | 156 | } |
bcostm | 0:9933f7db9a9b | 157 | } |
bcostm | 0:9933f7db9a9b | 158 | prev_nb_touches = TS_State.touchDetected; |
bcostm | 0:9933f7db9a9b | 159 | |
bcostm | 0:9933f7db9a9b | 160 | cleared = 0; |
bcostm | 0:9933f7db9a9b | 161 | |
liroy_theilor | 4:bb9c545c6d7f | 162 | // sprintf((char*)text, "Touches: %d", TS_State.touchDetected); |
liroy_theilor | 4:bb9c545c6d7f | 163 | // BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
bcostm | 0:9933f7db9a9b | 164 | |
bcostm | 0:9933f7db9a9b | 165 | for (idx = 0; idx < TS_State.touchDetected; idx++) { |
bcostm | 0:9933f7db9a9b | 166 | x = TS_State.touchX[idx]; |
bcostm | 0:9933f7db9a9b | 167 | y = TS_State.touchY[idx]; |
liroy_theilor | 4:bb9c545c6d7f | 168 | // sprintf((char*)text, "Touch %d: x=%d y=%d ", idx+1, x, y); |
liroy_theilor | 4:bb9c545c6d7f | 169 | // BSP_LCD_DisplayStringAt(0, LINE(idx+1), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 170 | |
liroy_theilor | 4:bb9c545c6d7f | 171 | |
liroy_theilor | 4:bb9c545c6d7f | 172 | |
liroy_theilor | 4:bb9c545c6d7f | 173 | |
bcostm | 0:9933f7db9a9b | 174 | } |
bcostm | 0:9933f7db9a9b | 175 | |
liroy_theilor | 4:bb9c545c6d7f | 176 | |
bcostm | 0:9933f7db9a9b | 177 | } else { |
bcostm | 0:9933f7db9a9b | 178 | if (!cleared) { |
liroy_theilor | 4:bb9c545c6d7f | 179 | // BSP_LCD_Clear(LCD_COLOR_BLUE); |
liroy_theilor | 4:bb9c545c6d7f | 180 | // sprintf((char*)text, "Touches: 0"); |
liroy_theilor | 4:bb9c545c6d7f | 181 | //BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 182 | cleared = 1; |
liroy_theilor | 4:bb9c545c6d7f | 183 | |
liroy_theilor | 4:bb9c545c6d7f | 184 | |
liroy_theilor | 4:bb9c545c6d7f | 185 | |
liroy_theilor | 4:bb9c545c6d7f | 186 | |
liroy_theilor | 4:bb9c545c6d7f | 187 | |
liroy_theilor | 4:bb9c545c6d7f | 188 | |
liroy_theilor | 4:bb9c545c6d7f | 189 | |
liroy_theilor | 4:bb9c545c6d7f | 190 | // TOUCHES 1 |
liroy_theilor | 4:bb9c545c6d7f | 191 | if ((x>= 195&& x<= 235) && (y>= 120 && y<= 160)) |
liroy_theilor | 4:bb9c545c6d7f | 192 | { |
liroy_theilor | 4:bb9c545c6d7f | 193 | sprintf((char*)text, "Touches: 1"); |
liroy_theilor | 4:bb9c545c6d7f | 194 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 195 | PSWD[i]='1'; |
liroy_theilor | 4:bb9c545c6d7f | 196 | i++; |
liroy_theilor | 4:bb9c545c6d7f | 197 | |
liroy_theilor | 4:bb9c545c6d7f | 198 | } |
liroy_theilor | 4:bb9c545c6d7f | 199 | |
liroy_theilor | 4:bb9c545c6d7f | 200 | // TOUCHES 2 |
liroy_theilor | 4:bb9c545c6d7f | 201 | if ((x>= 240&& x<= 280) && (y>= 120 && y<= 160)) |
liroy_theilor | 4:bb9c545c6d7f | 202 | { |
liroy_theilor | 4:bb9c545c6d7f | 203 | sprintf((char*)text, "Touches: 2"); |
liroy_theilor | 4:bb9c545c6d7f | 204 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 205 | |
liroy_theilor | 4:bb9c545c6d7f | 206 | PSWD[i]='2'; |
liroy_theilor | 4:bb9c545c6d7f | 207 | i++; |
liroy_theilor | 4:bb9c545c6d7f | 208 | } |
liroy_theilor | 4:bb9c545c6d7f | 209 | // TOUCHES 3 |
liroy_theilor | 4:bb9c545c6d7f | 210 | if ((x>= 285&& x<= 325) && (y>= 120 && y<= 160)) |
liroy_theilor | 4:bb9c545c6d7f | 211 | { |
liroy_theilor | 4:bb9c545c6d7f | 212 | sprintf((char*)text, "Touches: 3"); |
liroy_theilor | 4:bb9c545c6d7f | 213 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 214 | |
liroy_theilor | 4:bb9c545c6d7f | 215 | PSWD[i]='3'; |
liroy_theilor | 4:bb9c545c6d7f | 216 | i++; |
liroy_theilor | 4:bb9c545c6d7f | 217 | } |
liroy_theilor | 4:bb9c545c6d7f | 218 | |
liroy_theilor | 4:bb9c545c6d7f | 219 | // TOUCHES 4 |
liroy_theilor | 4:bb9c545c6d7f | 220 | if ((x>= 195&& x<= 235) && (y>= 162 && y<= 202)) |
liroy_theilor | 4:bb9c545c6d7f | 221 | { |
liroy_theilor | 4:bb9c545c6d7f | 222 | sprintf((char*)text, "Touches: 4"); |
liroy_theilor | 4:bb9c545c6d7f | 223 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 224 | PSWD[i]='4'; |
liroy_theilor | 4:bb9c545c6d7f | 225 | i++; |
liroy_theilor | 4:bb9c545c6d7f | 226 | |
liroy_theilor | 4:bb9c545c6d7f | 227 | } |
liroy_theilor | 4:bb9c545c6d7f | 228 | // TOUCHES 5 |
liroy_theilor | 4:bb9c545c6d7f | 229 | if ((x>= 240&& x<= 280) && (y>= 162 && y<= 202)) |
liroy_theilor | 4:bb9c545c6d7f | 230 | { |
liroy_theilor | 4:bb9c545c6d7f | 231 | sprintf((char*)text, "Touches: 5"); |
liroy_theilor | 4:bb9c545c6d7f | 232 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 233 | |
liroy_theilor | 4:bb9c545c6d7f | 234 | PSWD[i]='5'; |
liroy_theilor | 4:bb9c545c6d7f | 235 | i++; |
liroy_theilor | 4:bb9c545c6d7f | 236 | } |
liroy_theilor | 4:bb9c545c6d7f | 237 | // TOUCHES 6 |
liroy_theilor | 4:bb9c545c6d7f | 238 | if ((x>= 289&& x<= 318) && (y>= 162&& y<= 202)) |
liroy_theilor | 4:bb9c545c6d7f | 239 | { |
liroy_theilor | 4:bb9c545c6d7f | 240 | sprintf((char*)text, "Touches: 6"); |
liroy_theilor | 4:bb9c545c6d7f | 241 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 242 | PSWD[i]='6'; |
liroy_theilor | 4:bb9c545c6d7f | 243 | i++; |
liroy_theilor | 4:bb9c545c6d7f | 244 | |
liroy_theilor | 4:bb9c545c6d7f | 245 | } |
liroy_theilor | 4:bb9c545c6d7f | 246 | |
liroy_theilor | 4:bb9c545c6d7f | 247 | // TOUCHES 7 |
liroy_theilor | 4:bb9c545c6d7f | 248 | if ((x>= 195&& x<= 235) && (y>= 204 && y<= 244)) |
liroy_theilor | 4:bb9c545c6d7f | 249 | { |
liroy_theilor | 4:bb9c545c6d7f | 250 | sprintf((char*)text, "Touches: 7"); |
liroy_theilor | 4:bb9c545c6d7f | 251 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 252 | PSWD[i]='7'; |
liroy_theilor | 4:bb9c545c6d7f | 253 | i++; |
liroy_theilor | 4:bb9c545c6d7f | 254 | colis++; |
liroy_theilor | 4:bb9c545c6d7f | 255 | |
liroy_theilor | 4:bb9c545c6d7f | 256 | |
liroy_theilor | 4:bb9c545c6d7f | 257 | } |
liroy_theilor | 4:bb9c545c6d7f | 258 | // TOUCHES 8 |
liroy_theilor | 4:bb9c545c6d7f | 259 | if ((x>= 240&& x<= 280) && (y>= 204 && y<= 244)) |
liroy_theilor | 4:bb9c545c6d7f | 260 | { |
liroy_theilor | 4:bb9c545c6d7f | 261 | sprintf((char*)text, "Touches: 8"); |
liroy_theilor | 4:bb9c545c6d7f | 262 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 263 | |
liroy_theilor | 4:bb9c545c6d7f | 264 | PSWD[i]='8'; |
liroy_theilor | 4:bb9c545c6d7f | 265 | i++; |
liroy_theilor | 4:bb9c545c6d7f | 266 | } |
liroy_theilor | 4:bb9c545c6d7f | 267 | // TOUCHES 9 |
liroy_theilor | 4:bb9c545c6d7f | 268 | if ((x>= 285&& x<= 325) && (y>= 204&& y<= 244)) |
liroy_theilor | 4:bb9c545c6d7f | 269 | { |
liroy_theilor | 4:bb9c545c6d7f | 270 | sprintf((char*)text, "Touches: 9"); |
liroy_theilor | 4:bb9c545c6d7f | 271 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 272 | PSWD[i]='9'; |
liroy_theilor | 4:bb9c545c6d7f | 273 | i++; |
liroy_theilor | 4:bb9c545c6d7f | 274 | |
liroy_theilor | 4:bb9c545c6d7f | 275 | } |
liroy_theilor | 4:bb9c545c6d7f | 276 | if ((x>= 220&& x<= 280) && (y>= 250&& y<= 270)) |
liroy_theilor | 4:bb9c545c6d7f | 277 | { |
bcostm | 0:9933f7db9a9b | 278 | sprintf((char*)text, "Touches: 0"); |
Jerome Coutant
3:9f66aabe7b3b
|
279
|
BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE);
|
|
liroy_theilor | 4:bb9c545c6d7f | 280 | |
liroy_theilor | 4:bb9c545c6d7f | 281 | PSWD[i]='0'; |
liroy_theilor | 4:bb9c545c6d7f | 282 | i++; |
liroy_theilor | 4:bb9c545c6d7f | 283 | } |
liroy_theilor | 4:bb9c545c6d7f | 284 | |
liroy_theilor | 4:bb9c545c6d7f | 285 | |
liroy_theilor | 4:bb9c545c6d7f | 286 | |
liroy_theilor | 4:bb9c545c6d7f | 287 | |
liroy_theilor | 4:bb9c545c6d7f | 288 | |
liroy_theilor | 4:bb9c545c6d7f | 289 | |
liroy_theilor | 4:bb9c545c6d7f | 290 | // CODE LETTRE |
liroy_theilor | 4:bb9c545c6d7f | 291 | |
liroy_theilor | 4:bb9c545c6d7f | 292 | if ((PSWD[0]=='2')&& (PSWD[1]=='6')&& (PSWD[2]=='0')&& (PSWD[3]=='5')) |
liroy_theilor | 4:bb9c545c6d7f | 293 | { |
liroy_theilor | 4:bb9c545c6d7f | 294 | sprintf((char*)text, "CODE BON"); |
liroy_theilor | 4:bb9c545c6d7f | 295 | BSP_LCD_DisplayStringAt(15, LINE(6), (uint8_t *)&text, CENTER_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 296 | |
liroy_theilor | 4:bb9c545c6d7f | 297 | HAL_Delay(1000); |
liroy_theilor | 4:bb9c545c6d7f | 298 | |
liroy_theilor | 4:bb9c545c6d7f | 299 | servo.pulsewidth_us (1000); |
liroy_theilor | 4:bb9c545c6d7f | 300 | // ThisThread::sleep_for(1s); |
liroy_theilor | 4:bb9c545c6d7f | 301 | HAL_Delay(1000); |
liroy_theilor | 4:bb9c545c6d7f | 302 | i=0; |
liroy_theilor | 4:bb9c545c6d7f | 303 | |
liroy_theilor | 4:bb9c545c6d7f | 304 | } |
liroy_theilor | 4:bb9c545c6d7f | 305 | |
liroy_theilor | 4:bb9c545c6d7f | 306 | |
liroy_theilor | 4:bb9c545c6d7f | 307 | //code colis |
liroy_theilor | 4:bb9c545c6d7f | 308 | |
liroy_theilor | 4:bb9c545c6d7f | 309 | else if ((PSWD[0]=='4')&& (PSWD[1]=='3')&& (PSWD[2]=='2')&& (PSWD[3]=='1')) |
liroy_theilor | 4:bb9c545c6d7f | 310 | { |
liroy_theilor | 4:bb9c545c6d7f | 311 | colis++; |
liroy_theilor | 4:bb9c545c6d7f | 312 | sprintf((char*)text, "CODE BON"); |
liroy_theilor | 4:bb9c545c6d7f | 313 | BSP_LCD_DisplayStringAt(15, LINE(6), (uint8_t *)&text, CENTER_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 314 | |
liroy_theilor | 4:bb9c545c6d7f | 315 | |
liroy_theilor | 4:bb9c545c6d7f | 316 | |
liroy_theilor | 4:bb9c545c6d7f | 317 | HAL_Delay(1000); |
liroy_theilor | 4:bb9c545c6d7f | 318 | |
liroy_theilor | 4:bb9c545c6d7f | 319 | servo.pulsewidth_us (1000); |
liroy_theilor | 4:bb9c545c6d7f | 320 | // ThisThread::sleep_for(1s); |
liroy_theilor | 4:bb9c545c6d7f | 321 | HAL_Delay(1000); |
liroy_theilor | 4:bb9c545c6d7f | 322 | i=0; |
liroy_theilor | 4:bb9c545c6d7f | 323 | } |
liroy_theilor | 4:bb9c545c6d7f | 324 | |
liroy_theilor | 4:bb9c545c6d7f | 325 | |
liroy_theilor | 4:bb9c545c6d7f | 326 | |
liroy_theilor | 4:bb9c545c6d7f | 327 | |
liroy_theilor | 4:bb9c545c6d7f | 328 | |
liroy_theilor | 4:bb9c545c6d7f | 329 | |
liroy_theilor | 4:bb9c545c6d7f | 330 | else if (i>=3) |
liroy_theilor | 4:bb9c545c6d7f | 331 | { |
liroy_theilor | 4:bb9c545c6d7f | 332 | |
liroy_theilor | 4:bb9c545c6d7f | 333 | |
liroy_theilor | 4:bb9c545c6d7f | 334 | BSP_LCD_DisplayStringAt(0, LINE(0), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 335 | |
liroy_theilor | 4:bb9c545c6d7f | 336 | |
liroy_theilor | 4:bb9c545c6d7f | 337 | } |
liroy_theilor | 4:bb9c545c6d7f | 338 | sprintf((char*)text, "Nombre de colis: %d", colis); |
liroy_theilor | 4:bb9c545c6d7f | 339 | BSP_LCD_DisplayStringAt(0, LINE(10 ), (uint8_t *)&text, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 340 | |
liroy_theilor | 4:bb9c545c6d7f | 341 | |
liroy_theilor | 4:bb9c545c6d7f | 342 | compteur=0; |
liroy_theilor | 4:bb9c545c6d7f | 343 | |
liroy_theilor | 4:bb9c545c6d7f | 344 | |
liroy_theilor | 4:bb9c545c6d7f | 345 | if ((PSWD[0]=='1')&& (PSWD[1]=='2')&& (PSWD[2]=='3')&& (PSWD[3]=='4')) |
liroy_theilor | 4:bb9c545c6d7f | 346 | { |
liroy_theilor | 4:bb9c545c6d7f | 347 | sprintf((char*)text, "FERMETURE"); |
liroy_theilor | 4:bb9c545c6d7f | 348 | BSP_LCD_DisplayStringAt(15, LINE(6), (uint8_t *)&text, CENTER_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 349 | HAL_Delay(1000); |
liroy_theilor | 4:bb9c545c6d7f | 350 | |
liroy_theilor | 4:bb9c545c6d7f | 351 | servo.pulsewidth_us (2000); |
liroy_theilor | 4:bb9c545c6d7f | 352 | //ThisThread::sleep_for(1s); |
liroy_theilor | 4:bb9c545c6d7f | 353 | HAL_Delay(1000); |
liroy_theilor | 4:bb9c545c6d7f | 354 | i=0; |
liroy_theilor | 4:bb9c545c6d7f | 355 | } |
liroy_theilor | 4:bb9c545c6d7f | 356 | |
liroy_theilor | 4:bb9c545c6d7f | 357 | |
liroy_theilor | 4:bb9c545c6d7f | 358 | |
liroy_theilor | 4:bb9c545c6d7f | 359 | |
liroy_theilor | 4:bb9c545c6d7f | 360 | } |
liroy_theilor | 4:bb9c545c6d7f | 361 | |
liroy_theilor | 4:bb9c545c6d7f | 362 | |
liroy_theilor | 4:bb9c545c6d7f | 363 | |
bcostm | 0:9933f7db9a9b | 364 | } |
bcostm | 0:9933f7db9a9b | 365 | } |
bcostm | 0:9933f7db9a9b | 366 | } |
liroy_theilor | 4:bb9c545c6d7f | 367 | |
liroy_theilor | 4:bb9c545c6d7f | 368 | void capteurTOR (void) |
liroy_theilor | 4:bb9c545c6d7f | 369 | { |
liroy_theilor | 4:bb9c545c6d7f | 370 | lecture =capteur.read(); |
liroy_theilor | 4:bb9c545c6d7f | 371 | |
liroy_theilor | 4:bb9c545c6d7f | 372 | |
liroy_theilor | 4:bb9c545c6d7f | 373 | switch(lecture) |
liroy_theilor | 4:bb9c545c6d7f | 374 | { |
liroy_theilor | 4:bb9c545c6d7f | 375 | case 0: // detection lettres |
liroy_theilor | 4:bb9c545c6d7f | 376 | obstak=true; |
liroy_theilor | 4:bb9c545c6d7f | 377 | break; |
liroy_theilor | 4:bb9c545c6d7f | 378 | |
liroy_theilor | 4:bb9c545c6d7f | 379 | case 1: |
liroy_theilor | 4:bb9c545c6d7f | 380 | if (obstak==true) |
liroy_theilor | 4:bb9c545c6d7f | 381 | { |
liroy_theilor | 4:bb9c545c6d7f | 382 | obstak=false; |
liroy_theilor | 4:bb9c545c6d7f | 383 | compteur++; |
liroy_theilor | 4:bb9c545c6d7f | 384 | } |
liroy_theilor | 4:bb9c545c6d7f | 385 | break; |
liroy_theilor | 4:bb9c545c6d7f | 386 | } |
liroy_theilor | 4:bb9c545c6d7f | 387 | sprintf((char*)affiche, "Nombre de lettre : %d",compteur); |
liroy_theilor | 4:bb9c545c6d7f | 388 | BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)&affiche, LEFT_MODE); |
liroy_theilor | 4:bb9c545c6d7f | 389 | } |