
Projet d'interfaçage avec le joystick réalisé par Ronan CHERIAUX
Dependencies: BSP_DISCO_F746NG
main.cpp@0:1c8761215497, 2020-06-26 (annotated)
- Committer:
- cheriauxlpsesam
- Date:
- Fri Jun 26 09:17:35 2020 +0000
- Revision:
- 0:1c8761215497
Projet_interfacage_CHERIAUX_Ronan
Who changed what in which revision?
User | Revision | Line number | New 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 | } |