Projet d'interfaçage avec le joystick réalisé par Ronan CHERIAUX

Dependencies:   BSP_DISCO_F746NG

Committer:
cheriauxlpsesam
Date:
Fri Jun 26 09:17:35 2020 +0000
Revision:
0:1c8761215497
Projet_interfacage_CHERIAUX_Ronan

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cheriauxlpsesam 0:1c8761215497 1 #include "mbed.h"
cheriauxlpsesam 0:1c8761215497 2 #include "stm32746g_discovery_lcd.h"
cheriauxlpsesam 0:1c8761215497 3 #include "stm32746g_discovery_ts.h"
cheriauxlpsesam 0:1c8761215497 4 #include "fleche_g.h"
cheriauxlpsesam 0:1c8761215497 5 #include "fleche_d.h"
cheriauxlpsesam 0:1c8761215497 6 #include "fleche_b.h"
cheriauxlpsesam 0:1c8761215497 7 #include "fleche_h.h"
cheriauxlpsesam 0:1c8761215497 8 #include "modf_code.h"
cheriauxlpsesam 0:1c8761215497 9 #include "retour.h"
cheriauxlpsesam 0:1c8761215497 10 #include "drawBitmap.h"
cheriauxlpsesam 0:1c8761215497 11
cheriauxlpsesam 0:1c8761215497 12 //On assigne les deux ports analogiques du joystick en sorti
cheriauxlpsesam 0:1c8761215497 13 AnalogIn inX(A4);
cheriauxlpsesam 0:1c8761215497 14 AnalogIn inY(A5);
cheriauxlpsesam 0:1c8761215497 15 int main()
cheriauxlpsesam 0:1c8761215497 16 {
cheriauxlpsesam 0:1c8761215497 17 //Variable d'initialisation
cheriauxlpsesam 0:1c8761215497 18 TS_StateTypeDef TS_State;
cheriauxlpsesam 0:1c8761215497 19 uint16_t x, y;
cheriauxlpsesam 0:1c8761215497 20 uint8_t text[30];
cheriauxlpsesam 0:1c8761215497 21 uint8_t status;
cheriauxlpsesam 0:1c8761215497 22 uint8_t idx;
cheriauxlpsesam 0:1c8761215497 23 uint8_t cleared = 0;
cheriauxlpsesam 0:1c8761215497 24 uint8_t prev_nb_touches = 0;
cheriauxlpsesam 0:1c8761215497 25 //Valeur des 2 axes du joystick
cheriauxlpsesam 0:1c8761215497 26 float axeX;
cheriauxlpsesam 0:1c8761215497 27 float axeY;
cheriauxlpsesam 0:1c8761215497 28
cheriauxlpsesam 0:1c8761215497 29 //Code a faire pour deverouillez l'electro-aimant
cheriauxlpsesam 0:1c8761215497 30 char code_a = 2; //gauche
cheriauxlpsesam 0:1c8761215497 31 char code_b = 4;//droite
cheriauxlpsesam 0:1c8761215497 32 char code_c = 2;//gauche
cheriauxlpsesam 0:1c8761215497 33 char code_d = 4;//droite
cheriauxlpsesam 0:1c8761215497 34
cheriauxlpsesam 0:1c8761215497 35 //Variable qui vont varié via la position du Joystick
cheriauxlpsesam 0:1c8761215497 36 char essai_a = 0;
cheriauxlpsesam 0:1c8761215497 37 char essai_b = 0;
cheriauxlpsesam 0:1c8761215497 38 char essai_c = 0;
cheriauxlpsesam 0:1c8761215497 39 char essai_d = 0;
cheriauxlpsesam 0:1c8761215497 40
cheriauxlpsesam 0:1c8761215497 41 //Variables qui vont servir à bloquer des parties du programme
cheriauxlpsesam 0:1c8761215497 42 char bloque = 0;
cheriauxlpsesam 0:1c8761215497 43 char bloque_bouton = 0;
cheriauxlpsesam 0:1c8761215497 44 char reset_mdp = 0;
cheriauxlpsesam 0:1c8761215497 45 char victoire = 0;
cheriauxlpsesam 0:1c8761215497 46
cheriauxlpsesam 0:1c8761215497 47 //Variable utilisé pour connaitre le nombre de valeur deja selectionner pour le score
cheriauxlpsesam 0:1c8761215497 48 char nombre = 0;
cheriauxlpsesam 0:1c8761215497 49 //Permet de positionner les images de fleche sur l'ecran
cheriauxlpsesam 0:1c8761215497 50 int col = 60;
cheriauxlpsesam 0:1c8761215497 51
cheriauxlpsesam 0:1c8761215497 52 //Variable permettant de donner un resultat a chaque variable d'essais
cheriauxlpsesam 0:1c8761215497 53 char val = 0;
cheriauxlpsesam 0:1c8761215497 54
cheriauxlpsesam 0:1c8761215497 55
cheriauxlpsesam 0:1c8761215497 56 //Variable utilisé pour le retour en arriere
cheriauxlpsesam 0:1c8761215497 57 char val_a =0;
cheriauxlpsesam 0:1c8761215497 58 char val_b =0;
cheriauxlpsesam 0:1c8761215497 59 char val_c =0;
cheriauxlpsesam 0:1c8761215497 60 char val_d =0;
cheriauxlpsesam 0:1c8761215497 61 char i;
cheriauxlpsesam 0:1c8761215497 62
cheriauxlpsesam 0:1c8761215497 63 BSP_LCD_Init();
cheriauxlpsesam 0:1c8761215497 64 BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS);
cheriauxlpsesam 0:1c8761215497 65 BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER);
cheriauxlpsesam 0:1c8761215497 66 BSP_LCD_Clear(LCD_COLOR_WHITE);
cheriauxlpsesam 0:1c8761215497 67 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN DEMO " , CENTER_MODE);
cheriauxlpsesam 0:1c8761215497 68 HAL_Delay(1000);
cheriauxlpsesam 0:1c8761215497 69 //Initialisation de l'ecran
cheriauxlpsesam 0:1c8761215497 70 status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize());
cheriauxlpsesam 0:1c8761215497 71 if (status != TS_OK) {
cheriauxlpsesam 0:1c8761215497 72 BSP_LCD_SetFont(&Font24);
cheriauxlpsesam 0:1c8761215497 73 BSP_LCD_Clear(LCD_COLOR_GREEN);
cheriauxlpsesam 0:1c8761215497 74 BSP_LCD_SetBackColor(LCD_COLOR_GREEN);
cheriauxlpsesam 0:1c8761215497 75 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
cheriauxlpsesam 0:1c8761215497 76 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE);
cheriauxlpsesam 0:1c8761215497 77 }
cheriauxlpsesam 0:1c8761215497 78 BSP_LCD_Clear(LCD_COLOR_WHITE);
cheriauxlpsesam 0:1c8761215497 79
cheriauxlpsesam 0:1c8761215497 80
cheriauxlpsesam 0:1c8761215497 81 while(1){
cheriauxlpsesam 0:1c8761215497 82 BSP_TS_GetState(&TS_State);
cheriauxlpsesam 0:1c8761215497 83 //Cette partie represente les boutons ainsi que l'utilisation du joystick, ils ne sont pas utilisable en cas de victoire
cheriauxlpsesam 0:1c8761215497 84 if(victoire == 0){
cheriauxlpsesam 0:1c8761215497 85 BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
cheriauxlpsesam 0:1c8761215497 86 BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
cheriauxlpsesam 0:1c8761215497 87 BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)"Chercher le code ", CENTER_MODE);
cheriauxlpsesam 0:1c8761215497 88 //Creation d'un bouton tactile
cheriauxlpsesam 0:1c8761215497 89 drawBitmap(0,0,(const uint8_t *)modf_code);
cheriauxlpsesam 0:1c8761215497 90 uint16_t x = TS_State.touchX[0];
cheriauxlpsesam 0:1c8761215497 91 uint16_t y = TS_State.touchY[0];
cheriauxlpsesam 0:1c8761215497 92 //Cette partie est pour modifier le mot de passe
cheriauxlpsesam 0:1c8761215497 93 if (TS_State.touchDetected) {
cheriauxlpsesam 0:1c8761215497 94 if(((x > 0) && (x < 100)) &&((y > 0) && (y<50))){
cheriauxlpsesam 0:1c8761215497 95 BSP_LCD_Clear(LCD_COLOR_WHITE);
cheriauxlpsesam 0:1c8761215497 96 BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
cheriauxlpsesam 0:1c8761215497 97 BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
cheriauxlpsesam 0:1c8761215497 98 BSP_LCD_DisplayStringAt(0, LINE(1), (uint8_t *)"Modification mot de passe ", CENTER_MODE);
cheriauxlpsesam 0:1c8761215497 99 reset_mdp = 1;
cheriauxlpsesam 0:1c8761215497 100 code_a = 0;
cheriauxlpsesam 0:1c8761215497 101 code_b = 0;
cheriauxlpsesam 0:1c8761215497 102 code_c = 0;
cheriauxlpsesam 0:1c8761215497 103 code_d = 0;
cheriauxlpsesam 0:1c8761215497 104 col = 60;
cheriauxlpsesam 0:1c8761215497 105 nombre = 0;
cheriauxlpsesam 0:1c8761215497 106
cheriauxlpsesam 0:1c8761215497 107 while(reset_mdp ==1){
cheriauxlpsesam 0:1c8761215497 108 //On recupere la valeur des 2 axes du joystick
cheriauxlpsesam 0:1c8761215497 109 axeX = inX.read();
cheriauxlpsesam 0:1c8761215497 110 axeY = inY.read();
cheriauxlpsesam 0:1c8761215497 111 if( axeX == 1.0){
cheriauxlpsesam 0:1c8761215497 112 if (bloque == 0 ){
cheriauxlpsesam 0:1c8761215497 113 drawBitmap(col,100,(const uint8_t *)fleche_h);
cheriauxlpsesam 0:1c8761215497 114 val = 1;
cheriauxlpsesam 0:1c8761215497 115 bloque = 1;
cheriauxlpsesam 0:1c8761215497 116 nombre = nombre + 1;
cheriauxlpsesam 0:1c8761215497 117 col = col + 90;
cheriauxlpsesam 0:1c8761215497 118 wait_us(200000);
cheriauxlpsesam 0:1c8761215497 119 }
cheriauxlpsesam 0:1c8761215497 120 }
cheriauxlpsesam 0:1c8761215497 121 if( axeY <= 0.40){
cheriauxlpsesam 0:1c8761215497 122 if (bloque == 0 ){
cheriauxlpsesam 0:1c8761215497 123 drawBitmap(col,100,(const uint8_t *)fleche_g);
cheriauxlpsesam 0:1c8761215497 124 val = 2;
cheriauxlpsesam 0:1c8761215497 125 bloque = 1;
cheriauxlpsesam 0:1c8761215497 126 nombre = nombre + 1;
cheriauxlpsesam 0:1c8761215497 127 col = col + 90;
cheriauxlpsesam 0:1c8761215497 128 wait_us(200000);
cheriauxlpsesam 0:1c8761215497 129 }
cheriauxlpsesam 0:1c8761215497 130 }
cheriauxlpsesam 0:1c8761215497 131 if( axeX <= 0.40){
cheriauxlpsesam 0:1c8761215497 132 if (bloque == 0 ){
cheriauxlpsesam 0:1c8761215497 133 drawBitmap(col,100,(const uint8_t *)fleche_b);
cheriauxlpsesam 0:1c8761215497 134 val = 3;
cheriauxlpsesam 0:1c8761215497 135 bloque = 1;
cheriauxlpsesam 0:1c8761215497 136 nombre = nombre + 1;
cheriauxlpsesam 0:1c8761215497 137 col = col + 90;
cheriauxlpsesam 0:1c8761215497 138 wait_us(200000);
cheriauxlpsesam 0:1c8761215497 139 }
cheriauxlpsesam 0:1c8761215497 140 }
cheriauxlpsesam 0:1c8761215497 141 if( axeY == 1.0){
cheriauxlpsesam 0:1c8761215497 142 if (bloque == 0 ){
cheriauxlpsesam 0:1c8761215497 143 drawBitmap(col,100,(const uint8_t *)fleche_d);
cheriauxlpsesam 0:1c8761215497 144 val = 4;
cheriauxlpsesam 0:1c8761215497 145 bloque = 1;
cheriauxlpsesam 0:1c8761215497 146 nombre = nombre + 1;
cheriauxlpsesam 0:1c8761215497 147 col = col + 90;
cheriauxlpsesam 0:1c8761215497 148 wait_us(200000);
cheriauxlpsesam 0:1c8761215497 149 }
cheriauxlpsesam 0:1c8761215497 150 }
cheriauxlpsesam 0:1c8761215497 151 if (bloque == 1){
cheriauxlpsesam 0:1c8761215497 152 switch(nombre) {
cheriauxlpsesam 0:1c8761215497 153 case 1:
cheriauxlpsesam 0:1c8761215497 154 code_a = val;
cheriauxlpsesam 0:1c8761215497 155 bloque = 0;
cheriauxlpsesam 0:1c8761215497 156 break;
cheriauxlpsesam 0:1c8761215497 157 case 2:
cheriauxlpsesam 0:1c8761215497 158 code_b = val;
cheriauxlpsesam 0:1c8761215497 159 bloque = 0;
cheriauxlpsesam 0:1c8761215497 160 break;
cheriauxlpsesam 0:1c8761215497 161 case 3:
cheriauxlpsesam 0:1c8761215497 162 code_c = val;
cheriauxlpsesam 0:1c8761215497 163 bloque = 0;
cheriauxlpsesam 0:1c8761215497 164 break;
cheriauxlpsesam 0:1c8761215497 165 case 4:
cheriauxlpsesam 0:1c8761215497 166 code_d = val;
cheriauxlpsesam 0:1c8761215497 167 nombre = 0;
cheriauxlpsesam 0:1c8761215497 168 reset_mdp = 0;
cheriauxlpsesam 0:1c8761215497 169 col = 60;
cheriauxlpsesam 0:1c8761215497 170 bloque = 0;
cheriauxlpsesam 0:1c8761215497 171 BSP_LCD_Clear(LCD_COLOR_WHITE);
cheriauxlpsesam 0:1c8761215497 172 break;
cheriauxlpsesam 0:1c8761215497 173
cheriauxlpsesam 0:1c8761215497 174 }
cheriauxlpsesam 0:1c8761215497 175 }
cheriauxlpsesam 0:1c8761215497 176 }
cheriauxlpsesam 0:1c8761215497 177 }
cheriauxlpsesam 0:1c8761215497 178 }
cheriauxlpsesam 0:1c8761215497 179 //Bouton pour supprimer le dernier resultat
cheriauxlpsesam 0:1c8761215497 180 if(nombre > 0){
cheriauxlpsesam 0:1c8761215497 181 drawBitmap(380,0,(const uint8_t *)retour);
cheriauxlpsesam 0:1c8761215497 182 uint16_t x = TS_State.touchX[0];
cheriauxlpsesam 0:1c8761215497 183 uint16_t y = TS_State.touchY[0];
cheriauxlpsesam 0:1c8761215497 184 if (TS_State.touchDetected) {
cheriauxlpsesam 0:1c8761215497 185 if(((x > 380) && (x < 480)) &&((y > 0) && (y<100))){
cheriauxlpsesam 0:1c8761215497 186 col = 60;
cheriauxlpsesam 0:1c8761215497 187 //On réaffiche les anciens résultats grace val_a, val_b
cheriauxlpsesam 0:1c8761215497 188 for( i =0; i< nombre ; i++){
cheriauxlpsesam 0:1c8761215497 189 switch(i) {
cheriauxlpsesam 0:1c8761215497 190 case 0:
cheriauxlpsesam 0:1c8761215497 191
cheriauxlpsesam 0:1c8761215497 192 val = 0;
cheriauxlpsesam 0:1c8761215497 193 break;
cheriauxlpsesam 0:1c8761215497 194 case 1:
cheriauxlpsesam 0:1c8761215497 195
cheriauxlpsesam 0:1c8761215497 196 essai_a = val_a;
cheriauxlpsesam 0:1c8761215497 197 val = val_a;
cheriauxlpsesam 0:1c8761215497 198 break;
cheriauxlpsesam 0:1c8761215497 199 case 2:
cheriauxlpsesam 0:1c8761215497 200
cheriauxlpsesam 0:1c8761215497 201 essai_b = val_b;
cheriauxlpsesam 0:1c8761215497 202 val = val_b;
cheriauxlpsesam 0:1c8761215497 203 break;
cheriauxlpsesam 0:1c8761215497 204 default :
cheriauxlpsesam 0:1c8761215497 205 wait_us(5000);
cheriauxlpsesam 0:1c8761215497 206 }
cheriauxlpsesam 0:1c8761215497 207 switch(val){
cheriauxlpsesam 0:1c8761215497 208 case 0:
cheriauxlpsesam 0:1c8761215497 209 BSP_LCD_Clear(LCD_COLOR_WHITE);
cheriauxlpsesam 0:1c8761215497 210 break;
cheriauxlpsesam 0:1c8761215497 211 case 1:
cheriauxlpsesam 0:1c8761215497 212 drawBitmap(col,100,(const uint8_t *)fleche_h);
cheriauxlpsesam 0:1c8761215497 213 col = col +90;
cheriauxlpsesam 0:1c8761215497 214 break;
cheriauxlpsesam 0:1c8761215497 215 case 2:
cheriauxlpsesam 0:1c8761215497 216 drawBitmap(col,100,(const uint8_t *)fleche_g);
cheriauxlpsesam 0:1c8761215497 217 col = col +90;
cheriauxlpsesam 0:1c8761215497 218 break;
cheriauxlpsesam 0:1c8761215497 219 case 3:
cheriauxlpsesam 0:1c8761215497 220 drawBitmap(col,100,(const uint8_t *)fleche_b);
cheriauxlpsesam 0:1c8761215497 221 col = col +90;
cheriauxlpsesam 0:1c8761215497 222 break;
cheriauxlpsesam 0:1c8761215497 223 case 4:
cheriauxlpsesam 0:1c8761215497 224 drawBitmap(col,100,(const uint8_t *)fleche_d);
cheriauxlpsesam 0:1c8761215497 225 col = col +90;
cheriauxlpsesam 0:1c8761215497 226 break;
cheriauxlpsesam 0:1c8761215497 227 default :
cheriauxlpsesam 0:1c8761215497 228 wait_us(5000);
cheriauxlpsesam 0:1c8761215497 229 }
cheriauxlpsesam 0:1c8761215497 230 }
cheriauxlpsesam 0:1c8761215497 231 nombre = nombre - 1;
cheriauxlpsesam 0:1c8761215497 232 wait_us(200000);
cheriauxlpsesam 0:1c8761215497 233 }
cheriauxlpsesam 0:1c8761215497 234 }
cheriauxlpsesam 0:1c8761215497 235 }
cheriauxlpsesam 0:1c8761215497 236 }
cheriauxlpsesam 0:1c8761215497 237
cheriauxlpsesam 0:1c8761215497 238 wait_us(200000);
cheriauxlpsesam 0:1c8761215497 239 axeX = inX.read();
cheriauxlpsesam 0:1c8761215497 240 axeY = inY.read();
cheriauxlpsesam 0:1c8761215497 241 //Utilisation du joystick pour tenter de trouver le bon mot de passe
cheriauxlpsesam 0:1c8761215497 242 //Si l'on fait varier la position du joystick selon la position x ou y alors les valeurs vont varier d'environ 0.30 jusqu'à 1
cheriauxlpsesam 0:1c8761215497 243 if(bloque_bouton == 0){
cheriauxlpsesam 0:1c8761215497 244 if( axeX == 1.0){
cheriauxlpsesam 0:1c8761215497 245 if (bloque == 0 ){
cheriauxlpsesam 0:1c8761215497 246 drawBitmap(col,100,(const uint8_t *)fleche_h);
cheriauxlpsesam 0:1c8761215497 247 val = 1;
cheriauxlpsesam 0:1c8761215497 248 bloque = 1;
cheriauxlpsesam 0:1c8761215497 249 bloque_bouton = 1;
cheriauxlpsesam 0:1c8761215497 250 nombre = nombre + 1;
cheriauxlpsesam 0:1c8761215497 251 col = col + 90;
cheriauxlpsesam 0:1c8761215497 252 }
cheriauxlpsesam 0:1c8761215497 253 }
cheriauxlpsesam 0:1c8761215497 254 if( axeY <= 0.40){
cheriauxlpsesam 0:1c8761215497 255 if (bloque == 0 ){
cheriauxlpsesam 0:1c8761215497 256 drawBitmap(col,100,(const uint8_t *)fleche_g);
cheriauxlpsesam 0:1c8761215497 257 val = 2;
cheriauxlpsesam 0:1c8761215497 258 bloque = 1;
cheriauxlpsesam 0:1c8761215497 259 bloque_bouton = 1;
cheriauxlpsesam 0:1c8761215497 260 nombre = nombre + 1;
cheriauxlpsesam 0:1c8761215497 261 col = col + 90;
cheriauxlpsesam 0:1c8761215497 262 }
cheriauxlpsesam 0:1c8761215497 263 }
cheriauxlpsesam 0:1c8761215497 264 if( axeX <= 0.40){
cheriauxlpsesam 0:1c8761215497 265 if (bloque == 0 ){
cheriauxlpsesam 0:1c8761215497 266 drawBitmap(col,100,(const uint8_t *)fleche_b);
cheriauxlpsesam 0:1c8761215497 267 val = 3;
cheriauxlpsesam 0:1c8761215497 268 bloque = 1;
cheriauxlpsesam 0:1c8761215497 269 bloque_bouton = 1;
cheriauxlpsesam 0:1c8761215497 270 nombre = nombre + 1;
cheriauxlpsesam 0:1c8761215497 271 col = col + 90;
cheriauxlpsesam 0:1c8761215497 272 }
cheriauxlpsesam 0:1c8761215497 273 }
cheriauxlpsesam 0:1c8761215497 274 if( axeY == 1.0){
cheriauxlpsesam 0:1c8761215497 275 if (bloque == 0 ){
cheriauxlpsesam 0:1c8761215497 276 drawBitmap(col,100,(const uint8_t *)fleche_d);
cheriauxlpsesam 0:1c8761215497 277 val = 4;
cheriauxlpsesam 0:1c8761215497 278 bloque = 1;
cheriauxlpsesam 0:1c8761215497 279 bloque_bouton = 1;
cheriauxlpsesam 0:1c8761215497 280 nombre = nombre + 1;
cheriauxlpsesam 0:1c8761215497 281 col = col + 90;
cheriauxlpsesam 0:1c8761215497 282 }
cheriauxlpsesam 0:1c8761215497 283 }
cheriauxlpsesam 0:1c8761215497 284 }
cheriauxlpsesam 0:1c8761215497 285 if (bloque == 1){
cheriauxlpsesam 0:1c8761215497 286 switch(nombre) {
cheriauxlpsesam 0:1c8761215497 287 case 0:
cheriauxlpsesam 0:1c8761215497 288 BSP_LCD_Clear(LCD_COLOR_WHITE);
cheriauxlpsesam 0:1c8761215497 289 break;
cheriauxlpsesam 0:1c8761215497 290 case 1:
cheriauxlpsesam 0:1c8761215497 291
cheriauxlpsesam 0:1c8761215497 292 essai_a = val;
cheriauxlpsesam 0:1c8761215497 293 val_a = val;
cheriauxlpsesam 0:1c8761215497 294 bloque = 0;
cheriauxlpsesam 0:1c8761215497 295 bloque_bouton = 0;
cheriauxlpsesam 0:1c8761215497 296 break;
cheriauxlpsesam 0:1c8761215497 297 case 2:
cheriauxlpsesam 0:1c8761215497 298
cheriauxlpsesam 0:1c8761215497 299 essai_b = val;
cheriauxlpsesam 0:1c8761215497 300 val_b = val;
cheriauxlpsesam 0:1c8761215497 301 bloque = 0;
cheriauxlpsesam 0:1c8761215497 302 bloque_bouton = 0;
cheriauxlpsesam 0:1c8761215497 303 break;
cheriauxlpsesam 0:1c8761215497 304 case 3:
cheriauxlpsesam 0:1c8761215497 305
cheriauxlpsesam 0:1c8761215497 306 essai_c = val;
cheriauxlpsesam 0:1c8761215497 307 val_c = val;
cheriauxlpsesam 0:1c8761215497 308 bloque = 0;
cheriauxlpsesam 0:1c8761215497 309 bloque_bouton = 0;
cheriauxlpsesam 0:1c8761215497 310 break;
cheriauxlpsesam 0:1c8761215497 311
cheriauxlpsesam 0:1c8761215497 312 case 4:
cheriauxlpsesam 0:1c8761215497 313
cheriauxlpsesam 0:1c8761215497 314 essai_d = val;
cheriauxlpsesam 0:1c8761215497 315 break;
cheriauxlpsesam 0:1c8761215497 316
cheriauxlpsesam 0:1c8761215497 317 }
cheriauxlpsesam 0:1c8761215497 318 //Une fois positions mise on verifie si le code correspond au mot de passe
cheriauxlpsesam 0:1c8761215497 319 if(essai_d != 0){
cheriauxlpsesam 0:1c8761215497 320 //Si le code est bon on affiche un ecran vert avec ecrit victoire et on fait varier la variable "victoire" pour desactiver l'utilisation des bouton ainsi que du joystick
cheriauxlpsesam 0:1c8761215497 321 if(essai_a == code_a && essai_b == code_b && essai_c == code_c && essai_d == code_d){
cheriauxlpsesam 0:1c8761215497 322 if ( victoire == 0){
cheriauxlpsesam 0:1c8761215497 323 BSP_LCD_Clear(LCD_COLOR_GREEN);
cheriauxlpsesam 0:1c8761215497 324 BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
cheriauxlpsesam 0:1c8761215497 325 BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
cheriauxlpsesam 0:1c8761215497 326 BSP_LCD_DisplayStringAt(0, LINE(2), (uint8_t *)"VICTOIRE", CENTER_MODE);
cheriauxlpsesam 0:1c8761215497 327 }
cheriauxlpsesam 0:1c8761215497 328 victoire = 1;
cheriauxlpsesam 0:1c8761215497 329 }
cheriauxlpsesam 0:1c8761215497 330 //Si il ne s'agit pas du mot de passe un ecran rouge apparait avec ecrit "FAUX" et le joueur est invité à reessayer
cheriauxlpsesam 0:1c8761215497 331 else{
cheriauxlpsesam 0:1c8761215497 332 wait_us(200000);
cheriauxlpsesam 0:1c8761215497 333 BSP_LCD_Clear(LCD_COLOR_RED);
cheriauxlpsesam 0:1c8761215497 334 BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
cheriauxlpsesam 0:1c8761215497 335 BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
cheriauxlpsesam 0:1c8761215497 336 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"FAUX ", CENTER_MODE);
cheriauxlpsesam 0:1c8761215497 337 wait_us(500000);
cheriauxlpsesam 0:1c8761215497 338 essai_a = 0;
cheriauxlpsesam 0:1c8761215497 339 essai_b = 0;
cheriauxlpsesam 0:1c8761215497 340 essai_c = 0;
cheriauxlpsesam 0:1c8761215497 341 essai_d = 0;
cheriauxlpsesam 0:1c8761215497 342 nombre = 0;
cheriauxlpsesam 0:1c8761215497 343 col = 60;
cheriauxlpsesam 0:1c8761215497 344 BSP_LCD_Clear(LCD_COLOR_WHITE);
cheriauxlpsesam 0:1c8761215497 345 bloque = 0;
cheriauxlpsesam 0:1c8761215497 346 bloque_bouton = 0;
cheriauxlpsesam 0:1c8761215497 347 }
cheriauxlpsesam 0:1c8761215497 348 }
cheriauxlpsesam 0:1c8761215497 349 }
cheriauxlpsesam 0:1c8761215497 350 }
cheriauxlpsesam 0:1c8761215497 351 }