le test

Dependencies:   LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI

Revision:
16:b1bf03ee2878
Parent:
15:3874758e8f7d
Child:
17:c9b66df08920
--- a/TraceMatrix/Trace.cpp	Mon Apr 22 13:48:44 2019 +0000
+++ b/TraceMatrix/Trace.cpp	Mon Apr 22 15:11:14 2019 +0000
@@ -2,7 +2,9 @@
 
 LCD_DISCO_F429ZI lcdT;
 
-void DisplayMatrix(int xinit, int yinit, matrice* mat, int TaillePix,long long int couleur){
+void DisplayMatrix(int xexp, int yexp, matrice* mat, int TaillePix,long long int couleur){
+    int xinit = yexp; //C'est pas très clair mais il y a une invertion des x et des y dans la suite donc on fait ça -- à coriger
+    int yinit = xexp;
     lcdT.SetTextColor(couleur);
     matrice WorkingMatrix = *mat;
     for(int y=0;y<WorkingMatrix.tailleY;y++){
@@ -17,48 +19,32 @@
     lcdT.FillRect(xinit,yinit,TaillePix,TaillePix); */
 }
 
-void DM_Test(){
-    lcdT.Clear(0xFFFFFFFF);
-    DisplayMatrix(0,0,BS_0(),1,LCD_COLOR_BLACK);
-    DisplayMatrix(50,50,BS_1(),1,LCD_COLOR_YELLOW);
-    DisplayMatrix(100,100,BS_1(),1,LCD_COLOR_YELLOW);
-    DisplayMatrix(150,150,BS_1(),1,LCD_COLOR_YELLOW);
-    wait(5);
-    lcdT.Clear(0xFFFFFFFF);
-    BS_displayChiffre(150,150,0,5,LCD_COLOR_BLUE);
-    wait(3);
-    lcdT.Clear(0xFFFFFFFF);
-    DisplayMatrix(150,150,BS_1(),5,LCD_COLOR_RED);
-    wait(3);
-    lcdT.Clear(0xFFFFFFFF);
-    DisplayMatrix(150,150,BS_2(),5,LCD_COLOR_RED);
-    wait(3);
-    lcdT.Clear(0xFFFFFFFF);
-    DisplayMatrix(150,150,BS_3(),5,LCD_COLOR_RED);
-    wait(3);
+void DisplayMatrixClean(int xexp, int yexp, matrice* mat, int TaillePix,long long int couleur,long long int couleurFond){
+    int xinit = yexp;
+    int yinit = xexp;
+    lcdT.SetTextColor(couleurFond);
+    matrice WorkingMatrix = *mat;
+    lcdT.FillRect(xinit,yinit,TaillePix * WorkingMatrix.tailleY,TaillePix * WorkingMatrix.tailleX);
+    lcdT.SetTextColor(couleur);
+    for(int y=0;y<WorkingMatrix.tailleY;y++){
+        for(int x=0;x<WorkingMatrix.tailleX;x++){
+            if(WorkingMatrix.tableau[WorkingMatrix.tailleY-y-1][x]==1){
+                lcdT.FillRect(xinit + TaillePix * y,yinit + TaillePix * x,TaillePix,TaillePix);
+            }
+        }
+    }
+    free(mat);
+    /*lcdT.SetTextColor(LCD_COLOR_BLUE);    //lignes de test
+    lcdT.FillRect(xinit,yinit,TaillePix,TaillePix); */
+}
+
+void DM_test(){
+    DisplayMatrixClean(35,35,BS_graphe(),5,LCD_COLOR_BLACK,LCD_COLOR_WHITE);
+    wait(1);
     lcdT.Clear(0xFFFFFFFF);
-    DisplayMatrix(150,150,BS_4(),5,LCD_COLOR_RED);
-    wait(3);
-    lcdT.Clear(0xFFFFFFFF);
-    DisplayMatrix(150,150,BS_5(),5,LCD_COLOR_RED);
-    wait(3);
-    lcdT.Clear(0xFFFFFFFF);
-    DisplayMatrix(150,150,BS_6(),5,LCD_COLOR_RED);
-    wait(3);
-    lcdT.Clear(0xFFFFFFFF);
-    DisplayMatrix(150,150,BS_7(),5,LCD_COLOR_RED);
-    wait(3);
-    lcdT.Clear(0xFFFFFFFF);
-    DisplayMatrix(150,150,BS_8(),5,LCD_COLOR_RED);
-    wait(3);
-    lcdT.Clear(0xFFFFFFFF);
-    DisplayMatrix(150,150,BS_9(),5,LCD_COLOR_RED);
-    wait(3);
-    lcdT.Clear(0xFFFFFFFF);
-    DisplayMatrix(50,150,BS_smile(),7,LCD_COLOR_RED);
-    wait(5);
-    lcdT.Clear(0xFFFFFFFF);
-    DisplayMatrix(20,20,BS_graphe(),7,LCD_COLOR_BLACK);
+    BS_displayChiffreClean(35,125,745,5,LCD_COLOR_RED,LCD_COLOR_BLUE);
+    BS_displayChiffreClean(135,125,7,5,LCD_COLOR_RED,LCD_COLOR_BLUE);
+    BS_displayChiffre100Clean(35,25,745,5,LCD_COLOR_RED,LCD_COLOR_BLUE);
 }
 
 
@@ -290,6 +276,23 @@
     return ret;
 }
 
+matrice *BS_na(){
+    matrice* ret = (matrice*) malloc(sizeof(matrice));
+    (*ret).tailleX=5;
+    (*ret).tailleY=9;
+    (*ret).tableau[0][0]=1;    (*ret).tableau[0][1]=0;    (*ret).tableau[0][2]=0;    (*ret).tableau[0][3]=1;    (*ret).tableau[0][4]=0;
+    (*ret).tableau[1][0]=1;    (*ret).tableau[1][1]=1;    (*ret).tableau[1][2]=0;    (*ret).tableau[1][3]=1;    (*ret).tableau[1][4]=0;
+    (*ret).tableau[2][0]=1;    (*ret).tableau[2][1]=0;    (*ret).tableau[2][2]=1;    (*ret).tableau[2][3]=1;    (*ret).tableau[2][4]=0;
+    (*ret).tableau[3][0]=1;    (*ret).tableau[3][1]=0;    (*ret).tableau[3][2]=0;    (*ret).tableau[3][3]=1;    (*ret).tableau[3][4]=0;
+    (*ret).tableau[4][0]=0;    (*ret).tableau[4][1]=0;    (*ret).tableau[4][2]=0;    (*ret).tableau[4][3]=0;    (*ret).tableau[4][4]=0;
+    (*ret).tableau[5][0]=0;    (*ret).tableau[5][1]=0;    (*ret).tableau[5][2]=1;    (*ret).tableau[5][3]=0;    (*ret).tableau[5][4]=0;
+    (*ret).tableau[6][0]=0;    (*ret).tableau[6][1]=1;    (*ret).tableau[6][2]=0;    (*ret).tableau[6][3]=1;    (*ret).tableau[6][4]=0;
+    (*ret).tableau[7][0]=0;    (*ret).tableau[7][1]=1;    (*ret).tableau[7][2]=1;    (*ret).tableau[7][3]=1;    (*ret).tableau[7][4]=0;
+    (*ret).tableau[8][0]=1;    (*ret).tableau[8][1]=1;    (*ret).tableau[8][2]=0;    (*ret).tableau[8][3]=1;    (*ret).tableau[8][4]=1;
+    return ret;
+}
+
+
 void BS_displayChiffre(int x,int y,int num,int taille,long long int couleur){
     matrice* mmm;
     switch(num){
@@ -324,9 +327,57 @@
             mmm = BS_9();
             break;
         default:
-            mmm = BS_0();
+            mmm = BS_na();
     }
     DisplayMatrix(x,y,mmm,taille,couleur);
 }
 
+void BS_displayChiffreClean(int x,int y,int num,int taille,long long int couleur,long long int couleurFond){
+    matrice* mmm;
+    switch(num){
+        case 0:
+            mmm = BS_0();
+            break;
+        case 1:
+            mmm = BS_1();
+            break;
+        case 2:
+            mmm = BS_2();
+            break;
+        case 3:
+            mmm = BS_3();
+            break;
+        case 4:
+            mmm = BS_4();
+            break;
+        case 5:
+            mmm = BS_5();
+            break;
+        case 6:
+            mmm = BS_6();
+            break;
+        case 7:
+            mmm = BS_7();
+            break;
+        case 8:
+            mmm = BS_8();
+            break;
+        case 9:
+            mmm = BS_9();
+            break;
+        default:
+            mmm = BS_na();
+    }
+    DisplayMatrixClean(x,y,mmm,taille,couleur,couleurFond);
+}
 
+void BS_displayChiffre100Clean(int x,int y,int num,int taille,long long int couleur,long long int couleurFond){
+    int a = num/100;
+    int b = (num- a * 100)/10;
+    int c = num - a * 100 - b * 10;
+    lcdT.SetTextColor(couleurFond);
+    lcdT.FillRect(y,x,taille * 9,taille * 17);
+    BS_displayChiffre(x,y,a,taille,couleur);
+    BS_displayChiffre(x + 6 * taille,y,b,taille,couleur);
+    BS_displayChiffre(x + 12 * taille,y,c,taille,couleur);
+}
\ No newline at end of file