le test
Dependencies: LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI
Diff: TraceMatrix/Trace.cpp
- 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