V1 des afficheur 8x8 RGB
Flipper_Affichage.cpp
- Committer:
- bastien_07
- Date:
- 2021-12-16
- Revision:
- 0:035a2e99ccdc
File content as of revision 0:035a2e99ccdc:
#include "mbed.h" #include "Flipper_Affichage.h" //GLOBAL VARIABLE PixelArray px(WS2812_BUF); // See the program page for information on the timing numbers // The given numbers are for the K64F WS2812 ws(D9, WS2812_BUF, 0, 5, 5, 0); int colorbuffer[NUM_COLORS]; int NbrAfficheur=0; //Fonctions void EgalTab(int newTab[][4],int oldTab[][4]) { for(int i=0;i<8;i++) { for(int j=0;j<4;j++) { newTab[i][j]=oldTab[i][j]; } } } void InitDisplay(char Choix1,char Choix2,int color1,int color2,int bande) { int colorbuf[64]; ws.useII(WS2812::PER_PIXEL); // use per-pixel intensity scaling int iTab1[8][4]; int iTab2[8][4]; //int colorbuf2[64]={0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000,0x000000}; ///////////////////////////FIRST LETTERS //A int iA1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,color1,color1,color1}, {color1,0,0,color1}, {color1,color1,color1,color1}, {color1,0,0,color1}, {color1,0,0,color1}, {bande,bande,bande,bande} }; //B int iB1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,0,0,0}, {color1,0,0,0}, {color1,color1,color1,color1}, {color1,0,0,color1}, {color1,color1,color1,color1}, {bande,bande,bande,bande} }; //C int iC1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,color1,color1,color1}, {color1,0,0,0}, {color1,0,0,0}, {color1,0,0,0}, {color1,color1,color1,color1}, {bande,bande,bande,bande} }; //D int iD1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {0,0,0,color1}, {0,0,0,color1}, {color1,color1,color1,color1}, {color1,0,0,color1}, {color1,color1,color1,color1}, {bande,bande,bande,bande} }; //E int iE1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,color1,color1,color1}, {color1,0,0,0}, {color1,color1,color1,color1}, {color1,0,0,0}, {color1,color1,color1,color1}, {bande,bande,bande,bande} }; //F int iF1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,color1,color1,color1}, {color1,0,0,0}, {color1,color1,color1,0}, {color1,0,0,0}, {color1,0,0,0}, {bande,bande,bande,bande} }; //G int iG1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,color1,color1,color1}, {color1,0,0,0}, {color1,0,color1,color1}, {color1,0,0,color1}, {color1,color1,color1,color1}, {bande,bande,bande,bande} }; //H int iH1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,0,0,color1}, {color1,0,0,color1}, {color1,color1,color1,color1}, {color1,0,0,color1}, {color1,0,0,color1}, {bande,bande,bande,bande} }; //I int iI1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,color1,color1,color1}, {0,color1,color1,0}, {0,color1,color1,0}, {0,color1,color1,0}, {color1,color1,color1,color1}, {bande,bande,bande,bande} }; //J int iJ1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,color1,color1,color1}, {0,0,color1,0}, {0,0,color1,0}, {0,0,color1,0}, {color1,color1,color1,0}, {bande,bande,bande,bande} }; //K int iK1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,0,0,color1}, {color1,0,color1,0}, {color1,color1,0,0}, {color1,0,color1,0}, {color1,0,0,color1}, {bande,bande,bande,bande} }; //L int iL1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,0,0,0}, {color1,0,0,0}, {color1,0,0,0}, {color1,0,0,0}, {color1,color1,color1,color1}, {bande,bande,bande,bande} }; //M int iM1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,0,0,color1}, {color1,color1,color1,color1}, {color1,0,0,color1}, {color1,0,0,color1}, {color1,0,0,color1}, {bande,bande,bande,bande} }; //N int iN1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {0,0,0,0}, {color1,0,0,color1}, {color1,color1,0,color1}, {color1,0,color1,color1}, {color1,0,0,color1}, {bande,bande,bande,bande} }; //O int iO1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,color1,color1,color1}, {color1,0,0,color1}, {color1,0,0,color1}, {color1,0,0,color1}, {color1,color1,color1,color1}, {bande,bande,bande,bande} }; //P int iP1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,color1,color1,color1}, {color1,0,0,color1}, {color1,color1,color1,color1}, {color1,0,0,0}, {color1,0,0,0}, {bande,bande,bande,bande} }; //Q int iQ1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,color1,color1,color1}, {color1,0,0,color1}, {color1,0,0,color1}, {color1,color1,color1,color1}, {0,0,0,color1}, {bande,bande,bande,bande} }; //R int iR1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,color1,color1,color1}, {color1,0,0,color1}, {color1,color1,color1,color1}, {color1,0,color1,0}, {color1,0,0,color1}, {bande,bande,bande,bande} }; //s int iS1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,color1,color1,color1}, {color1,0,0,0}, {color1,color1,color1,color1}, {0,0,0,color1}, {color1,color1,color1,color1}, {bande,bande,bande,bande} }; //T int iT1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,color1,color1,color1}, {color1,color1,color1,color1}, {0,color1,color1,0}, {0,color1,color1,0}, {0,color1,color1,0}, {bande,bande,bande,bande} }; //U int iU1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,0,0,color1}, {color1,0,0,color1}, {color1,0,0,color1}, {color1,0,0,color1}, {color1,color1,color1,color1}, {bande,bande,bande,bande} }; //V int iV1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,0,0,color1}, {color1,0,0,color1}, {color1,0,0,color1}, {0,color1,color1,0}, {0,color1,color1,0}, {bande,bande,bande,bande} }; //W int iW1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color1,0,0,color1}, {color1,0,0,color1}, {color1,0,0,color1}, {color1,color1,color1,color1}, {color1,0,0,color1}, {bande,bande,bande,bande} }; //X int iX1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {0,0,0,0}, {color1,0,0,color1}, {0,color1,color1,0}, {0,color1,color1,0}, {color1,0,0,color1}, {bande,bande,bande,bande} }; //Y int iY1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {0,0,0,0}, {color1,0,0,color1}, {0,color1,color1,0}, {0,color1,0,0}, {color1,0,0,0}, {bande,bande,bande,bande} }; //Z int iZ1[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {0,0,0,0}, {color1,color1,color1,color1}, {0,0,color1,0}, {0,color1,0,0}, {color1,color1,color1,color1}, {bande,bande,bande,bande} }; ///////////////////////////SECOND LETTERS //A int iA2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,color2,color2,color2}, {color2,0,0,color2}, {color2,color2,color2,color2}, {color2,0,0,color2}, {color2,0,0,color2}, {bande,bande,bande,bande} }; //B int iB2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,0,0,0}, {color2,0,0,0}, {color2,color2,color2,color2}, {color2,0,0,color2}, {color2,color2,color2,color2}, {bande,bande,bande,bande} }; //C int iC2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,color2,color2,color2}, {color2,0,0,0}, {color2,0,0,0}, {color2,0,0,0}, {color2,color2,color2,color2}, {bande,bande,bande,bande} }; //D int iD2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {0,0,0,color2}, {0,0,0,color2}, {color2,color2,color2,color2}, {color2,0,0,color2}, {color2,color2,color2,color2}, {bande,bande,bande,bande} }; //E int iE2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,color2,color2,color2}, {color2,0,0,0}, {color2,color2,color2,color2}, {color2,0,0,0}, {color2,color2,color2,color2}, {bande,bande,bande,bande} }; //F int iF2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,color2,color2,color2}, {color2,0,0,0}, {color2,color2,color2,0}, {color2,0,0,0}, {color2,0,0,0}, {bande,bande,bande,bande} }; //G int iG2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,color2,color2,color2}, {color2,0,0,0}, {color2,0,color2,color2}, {color2,0,0,color2}, {color2,color2,color2,color2}, {bande,bande,bande,bande} }; //H int iH2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,0,0,color2}, {color2,0,0,color2}, {color2,color2,color2,color2}, {color2,0,0,color2}, {color2,0,0,color2}, {bande,bande,bande,bande} }; //I int iI2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,color2,color2,color2}, {0,color2,color2,0}, {0,color2,color2,0}, {0,color2,color2,0}, {color2,color2,color2,color2}, {bande,bande,bande,bande} }; //J int iJ2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,color2,color2,color2}, {0,0,color2,0}, {0,0,color2,0}, {0,0,color2,0}, {color2,color2,color2,0}, {bande,bande,bande,bande} }; //K int iK2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,0,0,color2}, {color2,0,color2,0}, {color2,color2,0,0}, {color2,0,color2,0}, {color2,0,0,color2}, {bande,bande,bande,bande} }; //L int iL2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,0,0,0}, {color2,0,0,0}, {color2,0,0,0}, {color2,0,0,0}, {color2,color2,color2,color2}, {bande,bande,bande,bande} }; //M int iM2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,0,0,color2}, {color2,color2,color2,color2}, {color2,0,0,color2}, {color2,0,0,color2}, {color2,0,0,color2}, {bande,bande,bande,bande} }; //N int iN2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {0,0,0,0}, {color2,0,0,color2}, {color2,color2,0,color2}, {color2,0,color2,color2}, {color2,0,0,color2}, {bande,bande,bande,bande} }; //O int iO2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,color2,color2,color2}, {color2,0,0,color2}, {color2,0,0,color2}, {color2,0,0,color2}, {color2,color2,color2,color2}, {bande,bande,bande,bande} }; //P int iP2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,color2,color2,color2}, {color2,0,0,color2}, {color2,color2,color2,color2}, {color2,0,0,0}, {color2,0,0,0}, {bande,bande,bande,bande} }; //Q int iQ2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,color2,color2,color2}, {color2,0,0,color2}, {color2,0,0,color2}, {color2,color2,color2,color2}, {0,0,0,color2}, {bande,bande,bande,bande} }; //R int iR2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,color2,color2,color2}, {color2,0,0,color2}, {color2,color2,color2,color2}, {color2,0,color2,0}, {color2,0,0,color2}, {bande,bande,bande,bande} }; //s int iS2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,color2,color2,color2}, {color2,0,0,0}, {color2,color2,color2,color2}, {0,0,0,color2}, {color2,color2,color2,color2}, {bande,bande,bande,bande} }; //T int iT2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,color2,color2,color2}, {color2,color2,color2,color2}, {0,color2,color2,0}, {0,color2,color2,0}, {0,color2,color2,0}, {bande,bande,bande,bande} }; //U int iU2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,0,0,color2}, {color2,0,0,color2}, {color2,0,0,color2}, {color2,0,0,color2}, {color2,color2,color2,color2}, {bande,bande,bande,bande} }; //V int iV2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,0,0,color2}, {color2,0,0,color2}, {color2,0,0,color2}, {0,color2,color2,0}, {0,color2,color2,0}, {bande,bande,bande,bande} }; //W int iW2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {color2,0,0,color2}, {color2,0,0,color2}, {color2,0,0,color2}, {color2,color2,color2,color2}, {color2,0,0,color2}, {bande,bande,bande,bande} }; //X int iX2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {0,0,0,0}, {color2,0,0,color2}, {0,color2,color2,0}, {0,color2,color2,0}, {color2,0,0,color2}, {bande,bande,bande,bande} }; //Y int iY2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {0,0,0,0}, {color2,0,0,color2}, {0,color2,color2,0}, {0,color2,0,0}, {color2,0,0,0}, {bande,bande,bande,bande} }; //Z int iZ2[8][4]= { {bande,bande,bande,bande}, {bande,bande,bande,bande}, {0,0,0,0}, {color2,color2,color2,color2}, {0,0,color2,0}, {0,color2,0,0}, {color2,color2,color2,color2}, {bande,bande,bande,bande} }; /////////////////////SWITCH1 switch(Choix1) { case 'a': EgalTab(iTab1,iA1); break; case 'b': EgalTab(iTab1,iB1); break; case 'c': EgalTab(iTab1,iC1); break; case 'd': EgalTab(iTab1,iD1); break; case 'e': EgalTab(iTab1,iE1); break; case 'f': EgalTab(iTab1,iF1); break; case 'g': EgalTab(iTab1,iG1); break; case 'h': EgalTab(iTab1,iH1); break; case 'i': EgalTab(iTab1,iI1); break; case 'j': EgalTab(iTab1,iJ1); break; case 'k': EgalTab(iTab1,iK1); break; case 'l': EgalTab(iTab1,iL1); break; case 'm': EgalTab(iTab1,iM1); break; case 'n': EgalTab(iTab1,iN1); break; case 'o': EgalTab(iTab1,iO1); break; case 'p': EgalTab(iTab1,iP1); break; case 'q': EgalTab(iTab1,iQ1); break; case 'r': EgalTab(iTab1,iR1); break; case 's': EgalTab(iTab1,iS1); break; case 't': EgalTab(iTab1,iT1); break; case 'u': EgalTab(iTab1,iU1); break; case 'v': EgalTab(iTab1,iV1); break; case 'w': EgalTab(iTab1,iW1); break; case 'x': EgalTab(iTab1,iX1); break; case 'y': EgalTab(iTab1,iY1); break; case 'z': EgalTab(iTab1,iZ1); break; } /////////////////////SWITCH2 switch(Choix2) { case 'a': EgalTab(iTab2,iA2); break; case 'b': EgalTab(iTab2,iB2); break; case 'c': EgalTab(iTab2,iC2); break; case 'd': EgalTab(iTab2,iD2); break; case 'e': EgalTab(iTab2,iE2); break; case 'f': EgalTab(iTab2,iF2); break; case 'g': EgalTab(iTab2,iG2); break; case 'h': EgalTab(iTab2,iH2); break; case 'i': EgalTab(iTab2,iI2); break; case 'j': EgalTab(iTab2,iJ2); break; case 'k': EgalTab(iTab2,iK2); break; case 'l': EgalTab(iTab2,iL2); break; case 'm': EgalTab(iTab2,iM2); break; case 'n': EgalTab(iTab2,iN2); break; case 'o': EgalTab(iTab2,iO2); break; case 'p': EgalTab(iTab2,iP2); break; case 'q': EgalTab(iTab2,iQ2); break; case 'r': EgalTab(iTab2,iR2); break; case 's': EgalTab(iTab2,iS2); break; case 't': EgalTab(iTab2,iT2); break; case 'u': EgalTab(iTab2,iU2); break; case 'v': EgalTab(iTab2,iV2); break; case 'w': EgalTab(iTab2,iW2); break; case 'x': EgalTab(iTab2,iX2); break; case 'y': EgalTab(iTab2,iY2); break; case 'z': EgalTab(iTab2,iZ2); break; } int iTab[8][8]; for(int i=0;i<8;i++) { for(int j=0;j<8;j++) { if(j>3) { iTab[i][j]=iTab2[i][j-4]; } else { iTab[i][j]=iTab1[i][j]; } } } int k=0,l,n; for(l=7; l>-1; l--) { if(k%2==1) { for(n=7; n>-1; n--) { switch(iTab[l][n]) { case 0: colorbuf[(k*8)+7-n]=0x000000; break; case 1: colorbuf[(k*8)+7-n]=0xff0000; break; case 2: colorbuf[(k*8)+7-n]=0x00ff00; break; case 3: colorbuf[(k*8)+7-n]=0x0000ff; break; case 4: colorbuf[(k*8)+7-n]=0xffff00; break; case 5: colorbuf[(k*8)+7-n]=0x582900; break; case 6: colorbuf[(k*8)+7-n]=0xffffff; break; case 7: colorbuf[(k*8)+7-n]=0xfA25CB; break; case 8: colorbuf[(k*8)+7-n]=0x606060; break; case 9: colorbuf[(k*8)+7-n]=0x7f00ff; break; } } k++; } else if(k%2==0) { for(n=0; n<8; n++) { switch(iTab[l][n]) { case 0: colorbuf[(k*8)+n]=0x000000; break; case 1: colorbuf[(k*8)+n]=0xff0000; break; case 2: colorbuf[(k*8)+n]=0x00ff00; break; case 3: colorbuf[(k*8)+n]=0x0000ff; break; case 4: colorbuf[(k*8)+n]=0xffff00; break; case 5: colorbuf[(k*8)+n]=0x582900; break; case 6: colorbuf[(k*8)+n]=0xffffff; break; case 7: colorbuf[(k*8)+n]=0xfA25CB; break; case 8: colorbuf[(k*8)+n]=0x606060; break; case 9: colorbuf[(k*8)+n]=0x7f00ff; break; } } k++; } } for (int d=0+64*NbrAfficheur; d<NUM_COLORS; d++) { colorbuffer[d]=colorbuf[d-64*NbrAfficheur]; } NbrAfficheur++; } void NewDisplay() { NbrAfficheur=0; } void Display() { // set up the colours we want to draw with //int colorbuf[NUM_COLORS] = {0x000000,0x000000,0x8B6C42,0x8B6C42,0x000000,0xff0000,0x2f2f00,0xff0000,0xff0000,0x2f2f00,0xff0000,0x00ff00,0x00ff00,0x00ff00,0x00ff00,0x00ff00}; // for each of the colours (j) write out 10 of them // the pixels are written at the colour*10, plus the colour position // all modulus 60 so it wraps around for (int i = 0; i < WS2812_BUF; i++) { px.Set(i, colorbuffer[(i) % NUM_COLORS]); } // now all the colours are computed, add a fade effect using intensity scaling // compute and write the II value for each pixel for (int j=0; j<WS2812_BUF; j++) { // px.SetI(pixel position, II value) px.SetI(j%WS2812_BUF, 0xf+(0xff*(j%1))); } // Now the buffer is written, rotate it // by writing it out with an increasing offset for (int z=WS2812_BUF; z >= 0 ; z--) { ws.write_offsets(px.getBuf(),z,z,z); //wait(0.075); } }