LAST PUBLISH MATRIX PROJECT

Dependencies:   mbed

Committer:
antoine_carpentier
Date:
Wed Jun 23 14:32:47 2021 +0000
Revision:
2:552c5891b8c5
Parent:
1:7a7366246b30
LAST COMMIT

Who changed what in which revision?

UserRevisionLine numberNew contents of line
antoine_carpentier 1:7a7366246b30 1 ////////////// INCLUSION DES LIBRAIRIES (L1-L18)//////////////
iut_cachan01 0:c78ec5cab98d 2 #include "mbed.h"
iut_cachan01 0:c78ec5cab98d 3 #include "LEDMatrix.h"
iut_cachan01 0:c78ec5cab98d 4 #include "smallFont.h"
antoine_carpentier 1:7a7366246b30 5 #include "stm32746g_discovery_ts.h"
antoine_carpentier 1:7a7366246b30 6 #include "stm32746g_discovery_lcd.h"
antoine_carpentier 1:7a7366246b30 7 #include "fleche.h"
antoine_carpentier 1:7a7366246b30 8 #include "dessin.h"
antoine_carpentier 1:7a7366246b30 9 #include "drapeau.h"
antoine_carpentier 1:7a7366246b30 10 #include "croixbmp.h"
antoine_carpentier 1:7a7366246b30 11 #include "gommebmp.h"
antoine_carpentier 1:7a7366246b30 12 #include "allemagnebmp.h"
antoine_carpentier 1:7a7366246b30 13 #include "belgiquebmp.h"
antoine_carpentier 1:7a7366246b30 14 #include "beninbmp.h"
antoine_carpentier 1:7a7366246b30 15 #include "francebmp.h"
antoine_carpentier 1:7a7366246b30 16 #include "lgbpbmp.h"
antoine_carpentier 1:7a7366246b30 17 #include "italiebmp.h"
antoine_carpentier 1:7a7366246b30 18 /////////////////FIN INCLUSION DES LIBRAIRIES/////////////////
iut_cachan01 0:c78ec5cab98d 19
antoine_carpentier 2:552c5891b8c5 20
antoine_carpentier 2:552c5891b8c5 21
antoine_carpentier 2:552c5891b8c5 22 //////DEFINITION LARGEUR ET LONGUEURE DE LECRAN LED (L22-L25)//////
antoine_carpentier 1:7a7366246b30 23 #define WIDTH 64
antoine_carpentier 1:7a7366246b30 24 #define HEIGHT 32
antoine_carpentier 1:7a7366246b30 25 //////// FIN DEFINITION LARGEUR ET LONGUEURE DE LECRAN LED ////////
antoine_carpentier 1:7a7366246b30 26
antoine_carpentier 2:552c5891b8c5 27
antoine_carpentier 2:552c5891b8c5 28
iut_cachan01 0:c78ec5cab98d 29 //stb c'est le latch
antoine_carpentier 1:7a7366246b30 30 // LEDMatrix (a, b, c, d, oe_1, r1, r2, b1, b2, g1, g2, stb_1, clk_1);
antoine_carpentier 1:7a7366246b30 31 LEDMatrix matrix(D1,D10,D0,D11,D7, D5, D3, D4, D2, D8, D9, D12, D13);
iut_cachan01 0:c78ec5cab98d 32 Ticker scanner;
iut_cachan01 0:c78ec5cab98d 33
antoine_carpentier 2:552c5891b8c5 34
iut_cachan01 0:c78ec5cab98d 35 // Display Buffer
iut_cachan01 0:c78ec5cab98d 36 uint8_t displaybuf[2][WIDTH *HEIGHT] = {
iut_cachan01 0:c78ec5cab98d 37 0x00
iut_cachan01 0:c78ec5cab98d 38 };
iut_cachan01 0:c78ec5cab98d 39
antoine_carpentier 1:7a7366246b30 40
antoine_carpentier 2:552c5891b8c5 41
antoine_carpentier 2:552c5891b8c5 42 /////////DEFINITION DES PROTOTYPES (L42-L46)/////////
antoine_carpentier 1:7a7366246b30 43 void page_accueil(void);
antoine_carpentier 1:7a7366246b30 44 void page_dessin(void);
antoine_carpentier 1:7a7366246b30 45 void page_drapeau(void);
antoine_carpentier 1:7a7366246b30 46 /////////FIN DE DEFINITION DES PROTOTYPES////////////
antoine_carpentier 1:7a7366246b30 47
antoine_carpentier 2:552c5891b8c5 48
antoine_carpentier 2:552c5891b8c5 49 /////////DEFINITION DES VARIABLES GLOBALES (L49-L53)/////////
antoine_carpentier 1:7a7366246b30 50 int xb=0, yb=0; // La valeur de x et y correspondante a l'ecran LCD
antoine_carpentier 1:7a7366246b30 51 uint8_t text[30]; // SPRINTF
antoine_carpentier 1:7a7366246b30 52 int p=0;// Pour le multicolor
antoine_carpentier 1:7a7366246b30 53 /////////FIN DE DEFINITION DES VARIABLES GLOBALES ////////////
antoine_carpentier 1:7a7366246b30 54
antoine_carpentier 2:552c5891b8c5 55
antoine_carpentier 2:552c5891b8c5 56
antoine_carpentier 2:552c5891b8c5 57 ////////////////DEFINITION DES FONCTIONS DE DESSIN D'IMAGE (L57-L246)/////////////////////
antoine_carpentier 1:7a7366246b30 58 //fleche
antoine_carpentier 1:7a7366246b30 59 void drawImage_fleche(int offsetX, int offsetY)
antoine_carpentier 1:7a7366246b30 60 {
antoine_carpentier 1:7a7366246b30 61 int x = 0;
antoine_carpentier 1:7a7366246b30 62 int y = 0;
antoine_carpentier 1:7a7366246b30 63 uint32_t* dataPtr = (uint32_t*)fleche.data;
antoine_carpentier 1:7a7366246b30 64 while(y < fleche.height) {
antoine_carpentier 1:7a7366246b30 65 while(x < fleche.width) {
antoine_carpentier 1:7a7366246b30 66 BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
antoine_carpentier 1:7a7366246b30 67 dataPtr++;
antoine_carpentier 1:7a7366246b30 68 x++;
antoine_carpentier 1:7a7366246b30 69 }
antoine_carpentier 1:7a7366246b30 70 x = 0;
antoine_carpentier 1:7a7366246b30 71 y++;
antoine_carpentier 1:7a7366246b30 72 }
antoine_carpentier 1:7a7366246b30 73 }
iut_cachan01 0:c78ec5cab98d 74
antoine_carpentier 1:7a7366246b30 75 //belgique
antoine_carpentier 1:7a7366246b30 76 void drawImage_belgique(int offsetX, int offsetY)
antoine_carpentier 1:7a7366246b30 77 {
antoine_carpentier 1:7a7366246b30 78 int x = 0;
antoine_carpentier 1:7a7366246b30 79 int y = 0;
antoine_carpentier 1:7a7366246b30 80 uint32_t* dataPtr = (uint32_t*)belgiquebmp.data;
antoine_carpentier 1:7a7366246b30 81 while(y < belgiquebmp.height) {
antoine_carpentier 1:7a7366246b30 82 while(x < belgiquebmp.width) {
antoine_carpentier 1:7a7366246b30 83 BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
antoine_carpentier 1:7a7366246b30 84 dataPtr++;
antoine_carpentier 1:7a7366246b30 85 x++;
antoine_carpentier 1:7a7366246b30 86 }
antoine_carpentier 1:7a7366246b30 87 x = 0;
antoine_carpentier 1:7a7366246b30 88 y++;
antoine_carpentier 1:7a7366246b30 89 }
antoine_carpentier 1:7a7366246b30 90 }
antoine_carpentier 1:7a7366246b30 91
antoine_carpentier 1:7a7366246b30 92 //allemagne
antoine_carpentier 1:7a7366246b30 93 void drawImage_allemagne(int offsetX, int offsetY)
antoine_carpentier 1:7a7366246b30 94 {
antoine_carpentier 1:7a7366246b30 95 int x = 0;
antoine_carpentier 1:7a7366246b30 96 int y = 0;
antoine_carpentier 1:7a7366246b30 97 uint32_t* dataPtr = (uint32_t*)allemagnebmp.data;
antoine_carpentier 1:7a7366246b30 98 while(y < allemagnebmp.height) {
antoine_carpentier 1:7a7366246b30 99 while(x < allemagnebmp.width) {
antoine_carpentier 1:7a7366246b30 100 BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
antoine_carpentier 1:7a7366246b30 101 dataPtr++;
antoine_carpentier 1:7a7366246b30 102 x++;
antoine_carpentier 1:7a7366246b30 103 }
antoine_carpentier 1:7a7366246b30 104 x = 0;
antoine_carpentier 1:7a7366246b30 105 y++;
antoine_carpentier 1:7a7366246b30 106 }
antoine_carpentier 1:7a7366246b30 107 }
iut_cachan01 0:c78ec5cab98d 108
antoine_carpentier 1:7a7366246b30 109 //benin
antoine_carpentier 1:7a7366246b30 110 void drawImage_benin(int offsetX, int offsetY)
antoine_carpentier 1:7a7366246b30 111 {
antoine_carpentier 1:7a7366246b30 112 int x = 0;
antoine_carpentier 1:7a7366246b30 113 int y = 0;
antoine_carpentier 1:7a7366246b30 114 uint32_t* dataPtr = (uint32_t*)beninbmp.data;
antoine_carpentier 1:7a7366246b30 115 while(y < beninbmp.height) {
antoine_carpentier 1:7a7366246b30 116 while(x < beninbmp.width) {
antoine_carpentier 1:7a7366246b30 117 BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
antoine_carpentier 1:7a7366246b30 118 dataPtr++;
antoine_carpentier 1:7a7366246b30 119 x++;
antoine_carpentier 1:7a7366246b30 120 }
antoine_carpentier 1:7a7366246b30 121 x = 0;
antoine_carpentier 1:7a7366246b30 122 y++;
antoine_carpentier 1:7a7366246b30 123 }
antoine_carpentier 1:7a7366246b30 124 }
antoine_carpentier 1:7a7366246b30 125
antoine_carpentier 1:7a7366246b30 126 //france
antoine_carpentier 1:7a7366246b30 127 void drawImage_france(int offsetX, int offsetY)
antoine_carpentier 1:7a7366246b30 128 {
antoine_carpentier 1:7a7366246b30 129 int x = 0;
antoine_carpentier 1:7a7366246b30 130 int y = 0;
antoine_carpentier 1:7a7366246b30 131 uint32_t* dataPtr = (uint32_t*)francebmp.data;
antoine_carpentier 1:7a7366246b30 132 while(y < francebmp.height) {
antoine_carpentier 1:7a7366246b30 133 while(x < francebmp.width) {
antoine_carpentier 1:7a7366246b30 134 BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
antoine_carpentier 1:7a7366246b30 135 dataPtr++;
antoine_carpentier 1:7a7366246b30 136 x++;
antoine_carpentier 1:7a7366246b30 137 }
antoine_carpentier 1:7a7366246b30 138 x = 0;
antoine_carpentier 1:7a7366246b30 139 y++;
antoine_carpentier 1:7a7366246b30 140 }
antoine_carpentier 1:7a7366246b30 141 }
iut_cachan01 0:c78ec5cab98d 142
antoine_carpentier 1:7a7366246b30 143 //italie
antoine_carpentier 1:7a7366246b30 144 void drawImage_italie(int offsetX, int offsetY)
iut_cachan01 0:c78ec5cab98d 145 {
antoine_carpentier 1:7a7366246b30 146 int x = 0;
antoine_carpentier 1:7a7366246b30 147 int y = 0;
antoine_carpentier 1:7a7366246b30 148 uint32_t* dataPtr = (uint32_t*)italiebmp.data;
antoine_carpentier 1:7a7366246b30 149 while(y < italiebmp.height) {
antoine_carpentier 1:7a7366246b30 150 while(x < italiebmp.width) {
antoine_carpentier 1:7a7366246b30 151 BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
antoine_carpentier 1:7a7366246b30 152 dataPtr++;
antoine_carpentier 1:7a7366246b30 153 x++;
iut_cachan01 0:c78ec5cab98d 154 }
antoine_carpentier 1:7a7366246b30 155 x = 0;
antoine_carpentier 1:7a7366246b30 156 y++;
antoine_carpentier 1:7a7366246b30 157 }
antoine_carpentier 1:7a7366246b30 158 }
iut_cachan01 0:c78ec5cab98d 159
antoine_carpentier 1:7a7366246b30 160 //lgbt
antoine_carpentier 1:7a7366246b30 161 void drawImage_lgbt(int offsetX, int offsetY)
antoine_carpentier 1:7a7366246b30 162 {
antoine_carpentier 1:7a7366246b30 163 int x = 0;
antoine_carpentier 1:7a7366246b30 164 int y = 0;
antoine_carpentier 1:7a7366246b30 165 uint32_t* dataPtr = (uint32_t*)lgbpbmp.data;
antoine_carpentier 1:7a7366246b30 166 while(y < lgbpbmp.height) {
antoine_carpentier 1:7a7366246b30 167 while(x < lgbpbmp.width) {
antoine_carpentier 1:7a7366246b30 168 BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
antoine_carpentier 1:7a7366246b30 169 dataPtr++;
antoine_carpentier 1:7a7366246b30 170 x++;
antoine_carpentier 1:7a7366246b30 171 }
antoine_carpentier 1:7a7366246b30 172 x = 0;
antoine_carpentier 1:7a7366246b30 173 y++;
antoine_carpentier 1:7a7366246b30 174 }
antoine_carpentier 1:7a7366246b30 175 }
antoine_carpentier 1:7a7366246b30 176
antoine_carpentier 1:7a7366246b30 177 //drapeau
antoine_carpentier 1:7a7366246b30 178 void drawImage_drapeau(int offsetX, int offsetY)
antoine_carpentier 1:7a7366246b30 179 {
antoine_carpentier 1:7a7366246b30 180 int x = 0;
antoine_carpentier 1:7a7366246b30 181 int y = 0;
antoine_carpentier 1:7a7366246b30 182 uint32_t* dataPtr = (uint32_t*)drapeau.data;
antoine_carpentier 1:7a7366246b30 183 while(y < drapeau.height) {
antoine_carpentier 1:7a7366246b30 184 while(x < drapeau.width) {
antoine_carpentier 1:7a7366246b30 185 BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
antoine_carpentier 1:7a7366246b30 186 dataPtr++;
antoine_carpentier 1:7a7366246b30 187 x++;
antoine_carpentier 1:7a7366246b30 188 }
antoine_carpentier 1:7a7366246b30 189 x = 0;
antoine_carpentier 1:7a7366246b30 190 y++;
antoine_carpentier 1:7a7366246b30 191 }
iut_cachan01 0:c78ec5cab98d 192 }
iut_cachan01 0:c78ec5cab98d 193
iut_cachan01 0:c78ec5cab98d 194
antoine_carpentier 1:7a7366246b30 195 //gomme
antoine_carpentier 1:7a7366246b30 196 void drawImage_gomme(int offsetX, int offsetY)
antoine_carpentier 1:7a7366246b30 197 {
antoine_carpentier 1:7a7366246b30 198 int x = 0;
antoine_carpentier 1:7a7366246b30 199 int y = 0;
antoine_carpentier 1:7a7366246b30 200 uint32_t* dataPtr = (uint32_t*)gommebmp.data;
antoine_carpentier 1:7a7366246b30 201 while(y < gommebmp.height) {
antoine_carpentier 1:7a7366246b30 202 while(x < gommebmp.width) {
antoine_carpentier 1:7a7366246b30 203 BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
antoine_carpentier 1:7a7366246b30 204 dataPtr++;
antoine_carpentier 1:7a7366246b30 205 x++;
antoine_carpentier 1:7a7366246b30 206 }
antoine_carpentier 1:7a7366246b30 207 x = 0;
antoine_carpentier 1:7a7366246b30 208 y++;
antoine_carpentier 1:7a7366246b30 209 }
antoine_carpentier 1:7a7366246b30 210 }
antoine_carpentier 1:7a7366246b30 211
antoine_carpentier 1:7a7366246b30 212 //croix
antoine_carpentier 1:7a7366246b30 213 void drawImage_croix(int offsetX, int offsetY)
antoine_carpentier 1:7a7366246b30 214 {
antoine_carpentier 1:7a7366246b30 215 int x = 0;
antoine_carpentier 1:7a7366246b30 216 int y = 0;
antoine_carpentier 1:7a7366246b30 217 uint32_t* dataPtr = (uint32_t*)croixbmp.data;
antoine_carpentier 1:7a7366246b30 218 while(y < croixbmp.height) {
antoine_carpentier 1:7a7366246b30 219 while(x < croixbmp.width) {
antoine_carpentier 1:7a7366246b30 220 BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
antoine_carpentier 1:7a7366246b30 221 dataPtr++;
antoine_carpentier 1:7a7366246b30 222 x++;
antoine_carpentier 1:7a7366246b30 223 }
antoine_carpentier 1:7a7366246b30 224 x = 0;
antoine_carpentier 1:7a7366246b30 225 y++;
antoine_carpentier 1:7a7366246b30 226 }
antoine_carpentier 1:7a7366246b30 227 }
antoine_carpentier 1:7a7366246b30 228
antoine_carpentier 1:7a7366246b30 229
antoine_carpentier 1:7a7366246b30 230 //dessin
antoine_carpentier 1:7a7366246b30 231 void drawImage_dessin(int offsetX, int offsetY)
antoine_carpentier 1:7a7366246b30 232 {
antoine_carpentier 1:7a7366246b30 233 int x = 0;
antoine_carpentier 1:7a7366246b30 234 int y = 0;
antoine_carpentier 1:7a7366246b30 235 uint32_t* dataPtr = (uint32_t*)dessin.data;
antoine_carpentier 1:7a7366246b30 236 while(y < dessin.height) {
antoine_carpentier 1:7a7366246b30 237 while(x < dessin.width) {
antoine_carpentier 1:7a7366246b30 238 BSP_LCD_DrawPixel(x + offsetX, y + offsetY, *dataPtr);
antoine_carpentier 1:7a7366246b30 239 dataPtr++;
antoine_carpentier 1:7a7366246b30 240 x++;
antoine_carpentier 1:7a7366246b30 241 }
antoine_carpentier 1:7a7366246b30 242 x = 0;
antoine_carpentier 1:7a7366246b30 243 y++;
antoine_carpentier 1:7a7366246b30 244 }
antoine_carpentier 1:7a7366246b30 245 }
antoine_carpentier 2:552c5891b8c5 246 ////////////////FIN DEFINITION DES FONCTIONS DE DESSIN D'IMAGE (L57-L246)/////////////////////
antoine_carpentier 2:552c5891b8c5 247
antoine_carpentier 2:552c5891b8c5 248
antoine_carpentier 2:552c5891b8c5 249
antoine_carpentier 1:7a7366246b30 250
antoine_carpentier 1:7a7366246b30 251
antoine_carpentier 1:7a7366246b30 252 /// FONCTION DE SCAN DE L'ECRAN LED//////
iut_cachan01 0:c78ec5cab98d 253 void scan()
iut_cachan01 0:c78ec5cab98d 254 {
iut_cachan01 0:c78ec5cab98d 255 matrix.scan();
iut_cachan01 0:c78ec5cab98d 256 }
antoine_carpentier 1:7a7366246b30 257 ///FIN FONCTION DE SCAN DE L'ECRAN LED//////
iut_cachan01 0:c78ec5cab98d 258
antoine_carpentier 2:552c5891b8c5 259
antoine_carpentier 2:552c5891b8c5 260
antoine_carpentier 2:552c5891b8c5 261
antoine_carpentier 2:552c5891b8c5 262 ///////////////////////// DEBUT DU MAIN (L262-L652)////////////////////////////////////////
iut_cachan01 0:c78ec5cab98d 263 int main()
iut_cachan01 0:c78ec5cab98d 264 {
antoine_carpentier 1:7a7366246b30 265 TS_StateTypeDef TS_State; // Definition de l'objet qui servira pour la detection de clic sur la STM32
antoine_carpentier 1:7a7366246b30 266
antoine_carpentier 1:7a7366246b30 267
antoine_carpentier 1:7a7366246b30 268 //Definition des variables locales au main
antoine_carpentier 1:7a7366246b30 269 uint16_t x, y;
antoine_carpentier 1:7a7366246b30 270 uint8_t status;
antoine_carpentier 1:7a7366246b30 271 uint8_t idx;
antoine_carpentier 1:7a7366246b30 272 int i, c=1;
antoine_carpentier 2:552c5891b8c5 273 int page = 0; // La variable page défini la page sur laquelle on se trouve; page = 0 = page d'accueil; page = 1 = page dessin; page = 2 = page drapeau
antoine_carpentier 1:7a7366246b30 274 int couleur=7;//1 rouge; 2 vert; 3 jaune; 4 bleu; 5 violet; 6 cyan; 7 blanc
antoine_carpentier 1:7a7366246b30 275
antoine_carpentier 1:7a7366246b30 276
antoine_carpentier 1:7a7366246b30 277 ////////////////INITIALISATION DE LECRAN DE LA STM32//////////////
antoine_carpentier 1:7a7366246b30 278 BSP_LCD_Init();
antoine_carpentier 1:7a7366246b30 279 BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS);
antoine_carpentier 1:7a7366246b30 280 BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER);
antoine_carpentier 1:7a7366246b30 281 //////////////////////////////////////////////////////////////////
antoine_carpentier 1:7a7366246b30 282
antoine_carpentier 1:7a7366246b30 283
antoine_carpentier 1:7a7366246b30 284 status = BSP_TS_Init(BSP_LCD_GetXSize(), BSP_LCD_GetYSize()); // Recupération d'un status
antoine_carpentier 1:7a7366246b30 285 if (status != TS_OK) { // SI LE STATUS N'EST PAS OK L'INIT FAIL
antoine_carpentier 1:7a7366246b30 286 BSP_LCD_Clear(LCD_COLOR_WHITE);
antoine_carpentier 1:7a7366246b30 287 BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
antoine_carpentier 1:7a7366246b30 288 BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
antoine_carpentier 1:7a7366246b30 289 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"TOUCHSCREEN INIT FAIL", CENTER_MODE);
antoine_carpentier 1:7a7366246b30 290 }
antoine_carpentier 1:7a7366246b30 291 else { // SINON "INITIALISATION S'AFFICHE
antoine_carpentier 1:7a7366246b30 292 BSP_LCD_Clear(LCD_COLOR_WHITE);
antoine_carpentier 1:7a7366246b30 293 BSP_LCD_SetBackColor(LCD_COLOR_WHITE);
antoine_carpentier 1:7a7366246b30 294 BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
antoine_carpentier 1:7a7366246b30 295 BSP_LCD_DisplayStringAt(0, LINE(5), (uint8_t *)"INITIALISATION", CENTER_MODE);
antoine_carpentier 1:7a7366246b30 296 }
antoine_carpentier 1:7a7366246b30 297
antoine_carpentier 1:7a7366246b30 298 HAL_Delay(500); // Delais en ms
antoine_carpentier 1:7a7366246b30 299 BSP_LCD_SetFont(&Font12); // Police d'écriture
antoine_carpentier 1:7a7366246b30 300 BSP_LCD_SetBackColor(LCD_COLOR_WHITE); // Fond blanc
antoine_carpentier 1:7a7366246b30 301 BSP_LCD_SetTextColor(LCD_COLOR_BLUE); // Coleur du texte bleu
iut_cachan01 0:c78ec5cab98d 302
antoine_carpentier 1:7a7366246b30 303 initFonts();
antoine_carpentier 1:7a7366246b30 304
antoine_carpentier 1:7a7366246b30 305 matrix.begin((uint8_t *)displaybuf, WIDTH, HEIGHT); // Sauv en mémoire la taille de la matrice LED
antoine_carpentier 1:7a7366246b30 306
antoine_carpentier 2:552c5891b8c5 307 scanner.attach(scan, 0.0003); //Gère l'affiche sur la matrice LED
antoine_carpentier 1:7a7366246b30 308 //Un scan trop lent (>0.0009) provoque un effet de scintillement
antoine_carpentier 1:7a7366246b30 309 //Un scan trop rapide (<0.0001) provoque un effet d'allumage des LEDs qui sont sur la même ligne
antoine_carpentier 1:7a7366246b30 310
antoine_carpentier 2:552c5891b8c5 311
antoine_carpentier 2:552c5891b8c5 312 matrix.clear(); //Fonction de nettoyage de la matrice, toutes les LEDs s'éteignent
antoine_carpentier 2:552c5891b8c5 313
antoine_carpentier 2:552c5891b8c5 314
antoine_carpentier 2:552c5891b8c5 315 // Drapeau de la France (sur la matrice)
antoine_carpentier 2:552c5891b8c5 316 matrix.drawRect(0,0,21,64,4);
antoine_carpentier 2:552c5891b8c5 317 matrix.drawRect(21,0,43,64,7);// Allumage d'une zone rectangulaire sur l'écran LED
antoine_carpentier 1:7a7366246b30 318 matrix.drawRect(43,0,64,64,1);
antoine_carpentier 2:552c5891b8c5 319
antoine_carpentier 1:7a7366246b30 320 matrix.swap();
antoine_carpentier 1:7a7366246b30 321 while (!matrix.synchro());
antoine_carpentier 1:7a7366246b30 322 wait(1);
antoine_carpentier 1:7a7366246b30 323 matrix.clear();
antoine_carpentier 1:7a7366246b30 324
antoine_carpentier 2:552c5891b8c5 325
antoine_carpentier 1:7a7366246b30 326 for (i=200; i>-400; i-=4)
antoine_carpentier 1:7a7366246b30 327 {
antoine_carpentier 1:7a7366246b30 328 matrix.clear();
antoine_carpentier 2:552c5891b8c5 329 matrix.drawCharString(i,0,"MATRICE LED LP SESAM",c,fonts[0]); //Affichage de texte sur la matrice
antoine_carpentier 1:7a7366246b30 330 matrix.drawCharString(i,15,"CARPENTIER ANTOINE",c,fonts[0]);
antoine_carpentier 1:7a7366246b30 331 matrix.swap();
antoine_carpentier 1:7a7366246b30 332 wait(0.05);
antoine_carpentier 1:7a7366246b30 333 while (!matrix.synchro());
antoine_carpentier 1:7a7366246b30 334 }
antoine_carpentier 1:7a7366246b30 335 matrix.clear();
antoine_carpentier 1:7a7366246b30 336
antoine_carpentier 2:552c5891b8c5 337 BSP_LCD_Clear(LCD_COLOR_WHITE); // Effacage de l'ecran LCD
antoine_carpentier 2:552c5891b8c5 338
antoine_carpentier 2:552c5891b8c5 339
antoine_carpentier 2:552c5891b8c5 340 ///////////// BOUCLE INFINI //////////////
antoine_carpentier 1:7a7366246b30 341 while (1) {
antoine_carpentier 1:7a7366246b30 342
antoine_carpentier 2:552c5891b8c5 343
antoine_carpentier 2:552c5891b8c5 344 BSP_TS_GetState(&TS_State); // Recuperation de l'état du tactile
antoine_carpentier 2:552c5891b8c5 345
antoine_carpentier 2:552c5891b8c5 346 if (TS_State.touchDetected) // Si l'écran est touché
antoine_carpentier 2:552c5891b8c5 347 {
antoine_carpentier 2:552c5891b8c5 348 x = TS_State.touchX[idx]; //Recuperation de la coordonné en x
antoine_carpentier 2:552c5891b8c5 349 y = TS_State.touchY[idx]; //Recuperation de la coordonné en y
antoine_carpentier 2:552c5891b8c5 350 xb = x/7.5; // xb fait correspondre la led aux pixels correspondant
antoine_carpentier 2:552c5891b8c5 351 yb = y/7.5; // yb fait correspondre la led aux pixels correspondant
antoine_carpentier 1:7a7366246b30 352 }
antoine_carpentier 1:7a7366246b30 353
antoine_carpentier 2:552c5891b8c5 354
antoine_carpentier 2:552c5891b8c5 355
antoine_carpentier 2:552c5891b8c5 356 if (page == 0)
antoine_carpentier 2:552c5891b8c5 357 {
antoine_carpentier 2:552c5891b8c5 358 page_accueil(); // Par défault cette page est affiché
antoine_carpentier 2:552c5891b8c5 359 }
antoine_carpentier 2:552c5891b8c5 360
antoine_carpentier 2:552c5891b8c5 361
antoine_carpentier 1:7a7366246b30 362 //VERS PAGE DESSIN
antoine_carpentier 2:552c5891b8c5 363 if ((page == 0) && (x>= 10 && x<= 235) && (y>= 10 && y<= 235)) //Si nous sommes sur la page d'accueil et que nous cliquons dans la zone alors :
antoine_carpentier 1:7a7366246b30 364 {
antoine_carpentier 1:7a7366246b30 365 x=0;
antoine_carpentier 1:7a7366246b30 366 y=272;
antoine_carpentier 2:552c5891b8c5 367 BSP_LCD_Clear(LCD_COLOR_WHITE); //On efface tout et on passe à la page suivante
antoine_carpentier 1:7a7366246b30 368 matrix.clear();
antoine_carpentier 1:7a7366246b30 369 matrix.swap();
antoine_carpentier 1:7a7366246b30 370 while (!matrix.synchro());
antoine_carpentier 2:552c5891b8c5 371 page = 1; //Passage a la page dessin
antoine_carpentier 1:7a7366246b30 372 HAL_Delay(300);
antoine_carpentier 1:7a7366246b30 373 }
antoine_carpentier 1:7a7366246b30 374
antoine_carpentier 2:552c5891b8c5 375
antoine_carpentier 2:552c5891b8c5 376 // VERS DRAPEAU
antoine_carpentier 2:552c5891b8c5 377 if ((page==0)&&(x>=245 && x<=470)&&(y>= 10 && y<= 235)) //Si nous sommes sur la page d'accueil et que nous cliquons dans la zone alors :
antoine_carpentier 1:7a7366246b30 378 {
antoine_carpentier 2:552c5891b8c5 379 x=0;
antoine_carpentier 2:552c5891b8c5 380 y=0;
antoine_carpentier 2:552c5891b8c5 381 BSP_LCD_Clear(LCD_COLOR_WHITE); //On efface tout et on passe à la page suivante
antoine_carpentier 2:552c5891b8c5 382 matrix.clear();
antoine_carpentier 2:552c5891b8c5 383 matrix.swap();
antoine_carpentier 2:552c5891b8c5 384 while (!matrix.synchro());
antoine_carpentier 2:552c5891b8c5 385 page = 2; //Passage a la page drapeau
antoine_carpentier 2:552c5891b8c5 386 HAL_Delay(100);
antoine_carpentier 2:552c5891b8c5 387 }
antoine_carpentier 1:7a7366246b30 388
antoine_carpentier 2:552c5891b8c5 389
antoine_carpentier 2:552c5891b8c5 390
antoine_carpentier 2:552c5891b8c5 391 if(page == 1) //SI NOUS SOMMES SUR LA PAGE DESSIN:
antoine_carpentier 1:7a7366246b30 392 {
antoine_carpentier 2:552c5891b8c5 393 page_dessin(); //Dessin des rectangles
antoine_carpentier 1:7a7366246b30 394
antoine_carpentier 2:552c5891b8c5 395 matrix.swap();
antoine_carpentier 2:552c5891b8c5 396 while (!matrix.synchro());
antoine_carpentier 1:7a7366246b30 397
antoine_carpentier 1:7a7366246b30 398 if (y<241)
antoine_carpentier 1:7a7366246b30 399 {
antoine_carpentier 1:7a7366246b30 400
antoine_carpentier 1:7a7366246b30 401
antoine_carpentier 2:552c5891b8c5 402 if(couleur != 0) //SI LA GOMME N'EST PAS SELECTIONNé
antoine_carpentier 1:7a7366246b30 403 {
antoine_carpentier 2:552c5891b8c5 404 BSP_LCD_DrawPixel(TS_State.touchX[0], TS_State.touchY[0], LCD_COLOR_ORANGE); // Dessine sur l'ecran LCD
antoine_carpentier 2:552c5891b8c5 405 matrix.drawPoint(xb,yb,couleur); // Dessine sur la matrice LED aux coordonnées correspondantes à la où on touche sur la STM32
antoine_carpentier 2:552c5891b8c5 406 // Taille du pointeur = 1x1
antoine_carpentier 2:552c5891b8c5 407 }
antoine_carpentier 2:552c5891b8c5 408
antoine_carpentier 2:552c5891b8c5 409 else //SI LA GOMME EST SELECTIONNé
antoine_carpentier 1:7a7366246b30 410 {
antoine_carpentier 1:7a7366246b30 411 BSP_LCD_SetTextColor(LCD_COLOR_WHITE);
antoine_carpentier 2:552c5891b8c5 412 BSP_LCD_FillRect(x-7.5,y-7.5,22.5,22.5); //DESSINE DES CARRES BLANC SUR LECRAN LCD POUR EFFACER LA ZONE
antoine_carpentier 1:7a7366246b30 413
antoine_carpentier 2:552c5891b8c5 414 matrix.drawPoint(xb,yb,couleur); // Couleur = 0 = ETEINT
antoine_carpentier 1:7a7366246b30 415 matrix.drawPoint(xb+1,yb+1,couleur);
antoine_carpentier 1:7a7366246b30 416 matrix.drawPoint(xb-1,yb-1,couleur);
antoine_carpentier 1:7a7366246b30 417 matrix.drawPoint(xb+1,yb-1,couleur);
antoine_carpentier 1:7a7366246b30 418 matrix.drawPoint(xb-1,yb+1,couleur);
antoine_carpentier 1:7a7366246b30 419 matrix.drawPoint(xb-1,yb,couleur);
antoine_carpentier 1:7a7366246b30 420 matrix.drawPoint(xb,yb-1,couleur);
antoine_carpentier 1:7a7366246b30 421 matrix.drawPoint(xb+1,yb,couleur);
antoine_carpentier 2:552c5891b8c5 422 matrix.drawPoint(xb,yb+1,couleur); // Taille du pointeur = 3x3
antoine_carpentier 2:552c5891b8c5 423 }
antoine_carpentier 1:7a7366246b30 424
iut_cachan01 0:c78ec5cab98d 425 matrix.swap();
iut_cachan01 0:c78ec5cab98d 426 while (!matrix.synchro());
iut_cachan01 0:c78ec5cab98d 427 }
antoine_carpentier 1:7a7366246b30 428
antoine_carpentier 2:552c5891b8c5 429
antoine_carpentier 2:552c5891b8c5 430 ////BARRE DES COMMANDE, CHOIX DES COULEURS DES LEDS, GOMME ... (L430-L536)/////
antoine_carpentier 1:7a7366246b30 431 if (x<=43 && x>=2 && y<=270 && y>=242 )
iut_cachan01 0:c78ec5cab98d 432 {
antoine_carpentier 1:7a7366246b30 433 p=0;
antoine_carpentier 2:552c5891b8c5 434 couleur = 1; //ROUGE
antoine_carpentier 2:552c5891b8c5 435 }
antoine_carpentier 1:7a7366246b30 436
antoine_carpentier 1:7a7366246b30 437 if (x<=86 && x>=45 && y<=270 && y>=242 )
antoine_carpentier 1:7a7366246b30 438 {
antoine_carpentier 1:7a7366246b30 439 p=0;
antoine_carpentier 2:552c5891b8c5 440 couleur = 2; //VERT
antoine_carpentier 2:552c5891b8c5 441 }
iut_cachan01 0:c78ec5cab98d 442
antoine_carpentier 1:7a7366246b30 443 if (x<=129 && x>=88 && y<=270 && y>=242 )
antoine_carpentier 1:7a7366246b30 444 {
antoine_carpentier 1:7a7366246b30 445 p=0;
antoine_carpentier 2:552c5891b8c5 446 couleur = 4; //BLEU
antoine_carpentier 2:552c5891b8c5 447 }
antoine_carpentier 1:7a7366246b30 448
antoine_carpentier 1:7a7366246b30 449 if (x<=172 && x>=131 && y<=270 && y>=242 )
antoine_carpentier 1:7a7366246b30 450 {
antoine_carpentier 1:7a7366246b30 451 p=0;
antoine_carpentier 2:552c5891b8c5 452 couleur = 5; //VIOLET
antoine_carpentier 2:552c5891b8c5 453 }
antoine_carpentier 1:7a7366246b30 454
antoine_carpentier 1:7a7366246b30 455 if (x<=215 && x>=174 && y<=270 && y>=242 )
antoine_carpentier 1:7a7366246b30 456 {
antoine_carpentier 1:7a7366246b30 457 p=0;
antoine_carpentier 2:552c5891b8c5 458 couleur = 6; //CYAN
antoine_carpentier 2:552c5891b8c5 459 }
antoine_carpentier 1:7a7366246b30 460
antoine_carpentier 1:7a7366246b30 461 if (x<=258 && x>=217 && y<=270 && y>=242 )
antoine_carpentier 1:7a7366246b30 462 {
antoine_carpentier 1:7a7366246b30 463 p=0;
antoine_carpentier 2:552c5891b8c5 464 couleur = 3; //JAUNE
antoine_carpentier 2:552c5891b8c5 465 }
iut_cachan01 0:c78ec5cab98d 466
antoine_carpentier 1:7a7366246b30 467 if (x<=301 && x>=260 && y<=270 && y>=242 )
antoine_carpentier 1:7a7366246b30 468 {
antoine_carpentier 1:7a7366246b30 469 p=0;
antoine_carpentier 2:552c5891b8c5 470 couleur = 7; //BLANC
antoine_carpentier 2:552c5891b8c5 471 }
antoine_carpentier 2:552c5891b8c5 472
antoine_carpentier 2:552c5891b8c5 473
antoine_carpentier 2:552c5891b8c5 474 //CLIC MULTICOLOR
antoine_carpentier 1:7a7366246b30 475 if (x<=344 && x>=303 && y<=270 && y>=242 )
antoine_carpentier 1:7a7366246b30 476 {
antoine_carpentier 2:552c5891b8c5 477 p=1;
antoine_carpentier 2:552c5891b8c5 478 }
antoine_carpentier 1:7a7366246b30 479
antoine_carpentier 2:552c5891b8c5 480 //MULTICOLOR
antoine_carpentier 1:7a7366246b30 481 if (p==1)
antoine_carpentier 1:7a7366246b30 482 {
antoine_carpentier 2:552c5891b8c5 483 // DEFINITON DE ZONE ET DE COULEUR EN FONCTION
antoine_carpentier 1:7a7366246b30 484
antoine_carpentier 1:7a7366246b30 485 if (x<68 && y<91)couleur=7;
antoine_carpentier 1:7a7366246b30 486 if (x>=68 && x<136 && y<91)couleur=6;
antoine_carpentier 1:7a7366246b30 487 if (x>=136 && x<204 && y<91)couleur=5;
antoine_carpentier 1:7a7366246b30 488 if (x>=204 && x<272 && y<91)couleur=3;
antoine_carpentier 1:7a7366246b30 489 if (x>=272 && x<340 && y<91)couleur=4;
antoine_carpentier 1:7a7366246b30 490 if (x>=340 && x<408 && y<91)couleur=2;
antoine_carpentier 1:7a7366246b30 491 if (x>=408 && x<480 && y<91)couleur=1;
antoine_carpentier 1:7a7366246b30 492
antoine_carpentier 1:7a7366246b30 493 if (x<68 && y<91)couleur=1;
antoine_carpentier 1:7a7366246b30 494 if (x>=68 && x<136 && y<181 && y>90)couleur=2;
antoine_carpentier 1:7a7366246b30 495 if (x>=136 && x<204 && y<181 && y>90)couleur=3;
antoine_carpentier 1:7a7366246b30 496 if (x>=204 && x<272 && y<181 && y>90)couleur=4;
antoine_carpentier 1:7a7366246b30 497 if (x>=272 && x<340 && y<181 && y>90)couleur=5;
antoine_carpentier 1:7a7366246b30 498 if (x>=340 && x<408 && y<181 && y>90)couleur=6;
antoine_carpentier 1:7a7366246b30 499 if (x>=408 && x<480 && y<181 && y>90)couleur=7;
antoine_carpentier 1:7a7366246b30 500
antoine_carpentier 1:7a7366246b30 501 if (x<68 && y<91)couleur=5;
antoine_carpentier 1:7a7366246b30 502 if (x>=68 && x<136 && y>180)couleur=7;
antoine_carpentier 1:7a7366246b30 503 if (x>=136 && x<204 && y>180)couleur=2;
antoine_carpentier 1:7a7366246b30 504 if (x>=204 && x<272 && y>180)couleur=4;
antoine_carpentier 1:7a7366246b30 505 if (x>=272 && x<340 && y>180)couleur=1;
antoine_carpentier 1:7a7366246b30 506 if (x>=340 && x<408 && y>180)couleur=3;
antoine_carpentier 1:7a7366246b30 507 if (x>=408 && x<480 && y>180)couleur=6;
antoine_carpentier 2:552c5891b8c5 508 }
antoine_carpentier 2:552c5891b8c5 509
antoine_carpentier 2:552c5891b8c5 510 //GOMME
antoine_carpentier 2:552c5891b8c5 511 if (x<=396 && x>=355 && y<=267 && y>=254 )
antoine_carpentier 2:552c5891b8c5 512 {
antoine_carpentier 2:552c5891b8c5 513 p=0;
antoine_carpentier 2:552c5891b8c5 514 couleur = 0;
iut_cachan01 0:c78ec5cab98d 515 }
antoine_carpentier 2:552c5891b8c5 516
antoine_carpentier 2:552c5891b8c5 517 //EFFACE TOUT
antoine_carpentier 2:552c5891b8c5 518 if (x<=438 && x>=410 && y<=267 && y>=254 )
antoine_carpentier 2:552c5891b8c5 519 {
antoine_carpentier 2:552c5891b8c5 520 x=0;
antoine_carpentier 2:552c5891b8c5 521 y=0;
antoine_carpentier 2:552c5891b8c5 522 BSP_LCD_Clear(LCD_COLOR_WHITE);
antoine_carpentier 2:552c5891b8c5 523 matrix.clear();
antoine_carpentier 2:552c5891b8c5 524 }
antoine_carpentier 2:552c5891b8c5 525
antoine_carpentier 2:552c5891b8c5 526 //RETOUR PAGE ACCUEIL
antoine_carpentier 2:552c5891b8c5 527 if ((x>= 458 && x<= 480) && (y>= 240 && y<= 270))
antoine_carpentier 2:552c5891b8c5 528 {
antoine_carpentier 2:552c5891b8c5 529 BSP_LCD_Clear(LCD_COLOR_WHITE);
antoine_carpentier 2:552c5891b8c5 530 matrix.clear();
antoine_carpentier 2:552c5891b8c5 531 matrix.swap();
antoine_carpentier 2:552c5891b8c5 532 while (!matrix.synchro());
antoine_carpentier 2:552c5891b8c5 533 x = 0;
antoine_carpentier 2:552c5891b8c5 534 y = 0;
antoine_carpentier 2:552c5891b8c5 535 page = 0;
antoine_carpentier 2:552c5891b8c5 536 }
antoine_carpentier 2:552c5891b8c5 537
antoine_carpentier 1:7a7366246b30 538 }//FIN IF PAGE == 1
antoine_carpentier 1:7a7366246b30 539
antoine_carpentier 2:552c5891b8c5 540
antoine_carpentier 2:552c5891b8c5 541
antoine_carpentier 2:552c5891b8c5 542 if (page == 2) //PAGE DRAPEAU
antoine_carpentier 2:552c5891b8c5 543 {
antoine_carpentier 2:552c5891b8c5 544 page_drapeau(); //Affichage de la page drapeau
antoine_carpentier 2:552c5891b8c5 545
antoine_carpentier 2:552c5891b8c5 546 //HAUT GAUCHE
antoine_carpentier 2:552c5891b8c5 547 if ((x>= 8 && x<= 236) && (y>= 29 && y<= 103))
antoine_carpentier 2:552c5891b8c5 548 {
antoine_carpentier 2:552c5891b8c5 549 x = 0;
antoine_carpentier 2:552c5891b8c5 550 y = 0;
antoine_carpentier 2:552c5891b8c5 551 //ALLEMAGNE
antoine_carpentier 2:552c5891b8c5 552 matrix.clear();
antoine_carpentier 2:552c5891b8c5 553 matrix.drawRect(0,10,64,21,3);
antoine_carpentier 2:552c5891b8c5 554 matrix.drawRect(0,21,64,32,1);
antoine_carpentier 2:552c5891b8c5 555 matrix.swap();
antoine_carpentier 2:552c5891b8c5 556 while (!matrix.synchro());
antoine_carpentier 2:552c5891b8c5 557 }
antoine_carpentier 2:552c5891b8c5 558
antoine_carpentier 2:552c5891b8c5 559 // HAUT DROITE
antoine_carpentier 2:552c5891b8c5 560 else if ((x>= 244 && x<= 472) && (y>= 29 && y<= 103))
antoine_carpentier 2:552c5891b8c5 561 {
antoine_carpentier 2:552c5891b8c5 562 x = 0;
antoine_carpentier 2:552c5891b8c5 563 y = 0;
antoine_carpentier 2:552c5891b8c5 564 // BELGE
antoine_carpentier 2:552c5891b8c5 565 matrix.clear();
antoine_carpentier 2:552c5891b8c5 566 matrix.drawRect(21,0,43,64,3);
antoine_carpentier 2:552c5891b8c5 567 matrix.drawRect(43,0,64,64,1);
antoine_carpentier 2:552c5891b8c5 568 matrix.swap();
antoine_carpentier 2:552c5891b8c5 569 while (!matrix.synchro());
antoine_carpentier 2:552c5891b8c5 570 }
antoine_carpentier 2:552c5891b8c5 571
antoine_carpentier 2:552c5891b8c5 572 // MILIEU GAUCHE
antoine_carpentier 2:552c5891b8c5 573 else if ((x>= 8 && x<= 236) && (y>= 110 && y<= 184))
antoine_carpentier 2:552c5891b8c5 574 {
antoine_carpentier 2:552c5891b8c5 575 x = 0;
antoine_carpentier 2:552c5891b8c5 576 y = 0;
antoine_carpentier 2:552c5891b8c5 577 //BENIN
antoine_carpentier 2:552c5891b8c5 578 matrix.clear();
antoine_carpentier 2:552c5891b8c5 579 matrix.drawRect(0,0,21,64,2);
antoine_carpentier 2:552c5891b8c5 580 matrix.drawRect(21,0,64,16,3);
antoine_carpentier 2:552c5891b8c5 581 matrix.drawRect(21,16,64,32,1);
antoine_carpentier 2:552c5891b8c5 582 matrix.swap();
antoine_carpentier 2:552c5891b8c5 583 while (!matrix.synchro());
antoine_carpentier 2:552c5891b8c5 584 }
antoine_carpentier 1:7a7366246b30 585
antoine_carpentier 2:552c5891b8c5 586 // MILIEU DROITE
antoine_carpentier 2:552c5891b8c5 587 else if ((x>= 244 && x<= 472) && (y>= 110 && y<= 184))
antoine_carpentier 2:552c5891b8c5 588 {
antoine_carpentier 2:552c5891b8c5 589 x = 0;
antoine_carpentier 2:552c5891b8c5 590 y = 0;
antoine_carpentier 2:552c5891b8c5 591 //MULTICOLOR
antoine_carpentier 2:552c5891b8c5 592 matrix.clear();//1 rouge; 2 vert; 3 jaune; 4 bleu; 5 violet; 6 cyan; 7 blanc
antoine_carpentier 2:552c5891b8c5 593 matrix.drawRect(0,0,64,4,7);
antoine_carpentier 2:552c5891b8c5 594 matrix.drawRect(0,4,64,8,1);
antoine_carpentier 2:552c5891b8c5 595 matrix.drawRect(0,8,64,12,3);
antoine_carpentier 2:552c5891b8c5 596 matrix.drawRect(0,12,64,16,2);
antoine_carpentier 2:552c5891b8c5 597 matrix.drawRect(0,16,64,20,4);
antoine_carpentier 2:552c5891b8c5 598 matrix.drawRect(0,20,64,24,6);
antoine_carpentier 2:552c5891b8c5 599 matrix.drawRect(0,24,64,28,5);
antoine_carpentier 2:552c5891b8c5 600 matrix.drawRect(0,28,64,32,7);
antoine_carpentier 2:552c5891b8c5 601 matrix.swap();
antoine_carpentier 2:552c5891b8c5 602 while (!matrix.synchro());
antoine_carpentier 2:552c5891b8c5 603 }
antoine_carpentier 2:552c5891b8c5 604
antoine_carpentier 2:552c5891b8c5 605 // BAS GAUCHE
antoine_carpentier 2:552c5891b8c5 606 else if ((x>= 8 && x<= 236) && (y>= 192 && y<= 266))
antoine_carpentier 2:552c5891b8c5 607 {
antoine_carpentier 2:552c5891b8c5 608 x = 0;
antoine_carpentier 2:552c5891b8c5 609 y = 0;
antoine_carpentier 2:552c5891b8c5 610 //FRANCE
antoine_carpentier 2:552c5891b8c5 611 matrix.clear();
antoine_carpentier 2:552c5891b8c5 612 matrix.drawRect(0,0,21,64,4);
antoine_carpentier 2:552c5891b8c5 613 matrix.drawRect(21,0,43,64,7);
antoine_carpentier 2:552c5891b8c5 614 matrix.drawRect(43,0,64,64,1);
antoine_carpentier 2:552c5891b8c5 615 matrix.swap();
antoine_carpentier 2:552c5891b8c5 616 while (!matrix.synchro());
antoine_carpentier 2:552c5891b8c5 617 }
antoine_carpentier 2:552c5891b8c5 618
antoine_carpentier 2:552c5891b8c5 619
antoine_carpentier 2:552c5891b8c5 620 // BAS DROITE
antoine_carpentier 2:552c5891b8c5 621 else if ((x>= 244 && x<= 472) && (y>= 192 && y<= 266))
antoine_carpentier 2:552c5891b8c5 622 {
antoine_carpentier 2:552c5891b8c5 623 x = 0;
antoine_carpentier 2:552c5891b8c5 624 y = 0;
antoine_carpentier 2:552c5891b8c5 625 //ITALIE
antoine_carpentier 2:552c5891b8c5 626 matrix.clear();
antoine_carpentier 2:552c5891b8c5 627 matrix.drawRect(0,0,21,64,2);
antoine_carpentier 2:552c5891b8c5 628 matrix.drawRect(21,0,43,64,7);
antoine_carpentier 2:552c5891b8c5 629 matrix.drawRect(43,0,64,64,1);
antoine_carpentier 2:552c5891b8c5 630 matrix.swap();
antoine_carpentier 2:552c5891b8c5 631 while (!matrix.synchro());
antoine_carpentier 2:552c5891b8c5 632 }
antoine_carpentier 2:552c5891b8c5 633
antoine_carpentier 2:552c5891b8c5 634 if ((page==2)&&(x>= 458 && x<= 480) && (y>= 0 && y<= 22))
antoine_carpentier 2:552c5891b8c5 635 {
antoine_carpentier 2:552c5891b8c5 636 BSP_LCD_Clear(LCD_COLOR_WHITE);
antoine_carpentier 2:552c5891b8c5 637 matrix.clear();
antoine_carpentier 2:552c5891b8c5 638 matrix.swap();
antoine_carpentier 2:552c5891b8c5 639 while (!matrix.synchro());
antoine_carpentier 2:552c5891b8c5 640 x = 0;
antoine_carpentier 2:552c5891b8c5 641 y = 0;
antoine_carpentier 2:552c5891b8c5 642 page = 0;
antoine_carpentier 2:552c5891b8c5 643 }
antoine_carpentier 2:552c5891b8c5 644
antoine_carpentier 2:552c5891b8c5 645 } // FIN IF == 2
antoine_carpentier 2:552c5891b8c5 646
antoine_carpentier 1:7a7366246b30 647
antoine_carpentier 1:7a7366246b30 648 }// FIN WHILE
antoine_carpentier 1:7a7366246b30 649
iut_cachan01 0:c78ec5cab98d 650
antoine_carpentier 1:7a7366246b30 651 }// FIN MAIN
antoine_carpentier 2:552c5891b8c5 652 ///////////////////////// FIN DU MAIN (L262-L652)////////////////////////////////////////
antoine_carpentier 1:7a7366246b30 653
antoine_carpentier 1:7a7366246b30 654
antoine_carpentier 1:7a7366246b30 655
antoine_carpentier 1:7a7366246b30 656
antoine_carpentier 1:7a7366246b30 657
iut_cachan01 0:c78ec5cab98d 658
antoine_carpentier 2:552c5891b8c5 659 //////////////////// FONCTIONS PAGES (L659-L737) ///////////////////////////////////////////////////////
antoine_carpentier 1:7a7366246b30 660 void page_accueil()
antoine_carpentier 1:7a7366246b30 661 {
antoine_carpentier 2:552c5891b8c5 662 BSP_LCD_SetTextColor(LCD_COLOR_BLACK); //Couleur du texte
antoine_carpentier 2:552c5891b8c5 663 BSP_LCD_DrawRect(10, 10, 225, 225); //Bouton dessin
antoine_carpentier 1:7a7366246b30 664 BSP_LCD_DrawRect(245, 10, 225, 225); //Bouton drapeau
antoine_carpentier 1:7a7366246b30 665
antoine_carpentier 2:552c5891b8c5 666 sprintf((char*)text, "DESSIN"); //texte a ecrire
antoine_carpentier 2:552c5891b8c5 667 BSP_LCD_DisplayStringAt(95, LINE(20), (uint8_t *)&text, LEFT_MODE); //position du texte
antoine_carpentier 2:552c5891b8c5 668 drawImage_dessin(15,15); //fonction de dessin de l'image "dessin"
antoine_carpentier 1:7a7366246b30 669
antoine_carpentier 2:552c5891b8c5 670 sprintf((char*)text,"DRAPEAU"); //texte a ecrire
antoine_carpentier 2:552c5891b8c5 671 BSP_LCD_DisplayStringAt(120, LINE(20), (uint8_t *)&text, CENTER_MODE); //position du texte
antoine_carpentier 2:552c5891b8c5 672 drawImage_drapeau(250, 15); //fonction de dessin de l'image "drapeau"
antoine_carpentier 2:552c5891b8c5 673 }
antoine_carpentier 1:7a7366246b30 674
iut_cachan01 0:c78ec5cab98d 675
antoine_carpentier 1:7a7366246b30 676 void page_dessin()
antoine_carpentier 1:7a7366246b30 677 {
antoine_carpentier 2:552c5891b8c5 678 //AFFICHAGE DE LA BARRE DE COMMANDE
antoine_carpentier 2:552c5891b8c5 679
antoine_carpentier 2:552c5891b8c5 680 // ROUGE
antoine_carpentier 1:7a7366246b30 681 BSP_LCD_SetTextColor(LCD_COLOR_RED);
antoine_carpentier 1:7a7366246b30 682 BSP_LCD_FillRect(2,242,41, 28);
antoine_carpentier 1:7a7366246b30 683 //VERT
antoine_carpentier 1:7a7366246b30 684 BSP_LCD_SetTextColor(LCD_COLOR_GREEN);
antoine_carpentier 1:7a7366246b30 685 BSP_LCD_FillRect(45,242,41, 28);
antoine_carpentier 1:7a7366246b30 686 //BLEU
antoine_carpentier 1:7a7366246b30 687 BSP_LCD_SetTextColor(LCD_COLOR_BLUE);
antoine_carpentier 1:7a7366246b30 688 BSP_LCD_FillRect(88,242,41, 28);
antoine_carpentier 1:7a7366246b30 689 //VIOLET
antoine_carpentier 1:7a7366246b30 690 BSP_LCD_SetTextColor(LCD_COLOR_MAGENTA);
antoine_carpentier 1:7a7366246b30 691 BSP_LCD_FillRect(131,242,41, 28);
antoine_carpentier 1:7a7366246b30 692 //CYAN
antoine_carpentier 1:7a7366246b30 693 BSP_LCD_SetTextColor(LCD_COLOR_CYAN);
antoine_carpentier 1:7a7366246b30 694 BSP_LCD_FillRect(174,242,41, 28);
antoine_carpentier 1:7a7366246b30 695 //JAUNE
antoine_carpentier 1:7a7366246b30 696 BSP_LCD_SetTextColor(LCD_COLOR_YELLOW);
antoine_carpentier 1:7a7366246b30 697 BSP_LCD_FillRect(217,242,41, 28);
antoine_carpentier 1:7a7366246b30 698 //BLANC
antoine_carpentier 1:7a7366246b30 699 BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
antoine_carpentier 1:7a7366246b30 700 BSP_LCD_DrawRect(260, 242, 41, 28);
antoine_carpentier 1:7a7366246b30 701 //MULTICOLOR
antoine_carpentier 1:7a7366246b30 702 BSP_LCD_SetTextColor(LCD_COLOR_RED);
antoine_carpentier 1:7a7366246b30 703 BSP_LCD_FillRect(303,242,10, 28);
antoine_carpentier 1:7a7366246b30 704 BSP_LCD_SetTextColor(LCD_COLOR_GREEN);
antoine_carpentier 1:7a7366246b30 705 BSP_LCD_FillRect(314,242,10, 28);
antoine_carpentier 1:7a7366246b30 706 BSP_LCD_SetTextColor(LCD_COLOR_YELLOW);
antoine_carpentier 1:7a7366246b30 707 BSP_LCD_FillRect(325,242,10, 28);
antoine_carpentier 1:7a7366246b30 708 BSP_LCD_SetTextColor(LCD_COLOR_CYAN);
antoine_carpentier 1:7a7366246b30 709 BSP_LCD_FillRect(336,242,10, 28);
antoine_carpentier 1:7a7366246b30 710
antoine_carpentier 1:7a7366246b30 711 drawImage_gomme(355,245); //GOMME
antoine_carpentier 1:7a7366246b30 712 drawImage_croix(410,243); //EFFACER TOUT
antoine_carpentier 1:7a7366246b30 713 drawImage_fleche(445,245); // Retour
antoine_carpentier 1:7a7366246b30 714
antoine_carpentier 1:7a7366246b30 715 BSP_LCD_SetTextColor(LCD_COLOR_BLACK);
antoine_carpentier 1:7a7366246b30 716 BSP_LCD_DrawHLine(0,240,480);
iut_cachan01 0:c78ec5cab98d 717 }
iut_cachan01 0:c78ec5cab98d 718
antoine_carpentier 1:7a7366246b30 719 void page_drapeau()
antoine_carpentier 2:552c5891b8c5 720 {
antoine_carpentier 2:552c5891b8c5 721 BSP_LCD_DrawRect (8, 29, 228, 74);
antoine_carpentier 2:552c5891b8c5 722 BSP_LCD_DrawRect (8, 110,228, 74);
antoine_carpentier 2:552c5891b8c5 723 BSP_LCD_DrawRect (8, 191,228, 73);
antoine_carpentier 2:552c5891b8c5 724 BSP_LCD_DrawRect (244,29, 228, 74);
antoine_carpentier 2:552c5891b8c5 725 BSP_LCD_DrawRect (244,110,228, 74);
antoine_carpentier 2:552c5891b8c5 726 BSP_LCD_DrawRect (244,191,228, 73);
antoine_carpentier 2:552c5891b8c5 727
antoine_carpentier 2:552c5891b8c5 728 drawImage_allemagne(10,31);
antoine_carpentier 2:552c5891b8c5 729 drawImage_belgique (246,31);
antoine_carpentier 2:552c5891b8c5 730 drawImage_benin (10,111);
antoine_carpentier 2:552c5891b8c5 731 drawImage_lgbt (246,111);
antoine_carpentier 2:552c5891b8c5 732 drawImage_france (10,192);
antoine_carpentier 2:552c5891b8c5 733 drawImage_italie (246,192);
antoine_carpentier 2:552c5891b8c5 734 drawImage_fleche (447,0); // RETOUR
antoine_carpentier 1:7a7366246b30 735
antoine_carpentier 1:7a7366246b30 736 }
antoine_carpentier 2:552c5891b8c5 737 //////////////////// FIN DES FONCTIONS PAGES (L659-L737) ///////////////////////////////////////////////////////
iut_cachan01 0:c78ec5cab98d 738
antoine_carpentier 1:7a7366246b30 739
antoine_carpentier 1:7a7366246b30 740
antoine_carpentier 1:7a7366246b30 741
antoine_carpentier 1:7a7366246b30 742
antoine_carpentier 1:7a7366246b30 743
antoine_carpentier 1:7a7366246b30 744
antoine_carpentier 1:7a7366246b30 745
antoine_carpentier 1:7a7366246b30 746
antoine_carpentier 1:7a7366246b30 747
antoine_carpentier 1:7a7366246b30 748
antoine_carpentier 1:7a7366246b30 749
antoine_carpentier 1:7a7366246b30 750
antoine_carpentier 1:7a7366246b30 751
antoine_carpentier 1:7a7366246b30 752
antoine_carpentier 1:7a7366246b30 753
antoine_carpentier 1:7a7366246b30 754
antoine_carpentier 1:7a7366246b30 755