Estoy programando para un proyecto de un reloj, y necesito saber como hacer de una forma fácil los números, para mostrarlos en el display. Encontré esta matriz que ya esta hecha pero no entiendo la parte en que pasa de tener la matriz hecha a mostrarla en el display, creo que seria la parte que esta marcada en rojo si alguien me puede ayudar con este tema, lo agradecería. Y si conocen otra solución a mi problema.
Tengo 3 display de 5x7. conformaría uno de 15x7
Esta es la matriz que ya esta hecha.
Tengo 3 display de 5x7. conformaría uno de 15x7
Esta es la matriz que ya esta hecha.
Código:
void swatch(char bor);
void letra(char ro[]);
//PATRONES DE ENCENDIDO DE LOS LEDS POR COLUMNA
const char SPACE[]={0X00,0X00,0X00,0X00,0X00};
const char PUNTO[]={0X00,0X00,0X00,0X00,0X80};
const char A[]={0xFC,0X12,0X12,0X12,0XFC};
const char B[]={0xFE,0X92,0X92,0X92,0X6C};
const char C[]={0x7C,0X82,0X82,0X82,0X44};
const char D[]={0xFE,0X82,0X82,0X82,0X7C};
const char E[]={0xFE,0X92,0X92,0X92,0X82};
const char F[]={0xFE,0X12,0X12,0X12,0X02};
const char G[]={0x7C,0X92,0X92,0X92,0X74};
const char H[]={0xFE,0X10,0X10,0X10,0XFE};
const char RI[]={0x00,0X82,0XFE,0X82,0X00};
const char J[]={0x70,0X80,0X80,0X80,0X7E};
const char KA[]={0xFE,0X10,0X28,0X44,0X82};
const char L[]={0xFE,0X80,0X80,0X80,0X80};
const char M[]={0xFE,0X04,0X18,0X04,0XFE};
const char N[]={0xFE,0X08,0X10,0X20,0XFE};
const char O[]={0x7C,0X82,0X82,0X82,0X7C};
const char P[]={0xFE,0X12,0X12,0X12,0X0C};
const char Q[]={0x7C,0X82,0XA2,0X42,0XBC};
const char R[]={0xFE,0X12,0X32,0X52,0X8C};
const char S[]={0x4C,0X92,0X92,0X92,0X64};
const char T[]={0x02,0X02,0XFE,0X02,0X02};
const char U[]={0x7E,0X80,0X80,0X80,0X7E};
const char UDI[]={0X7A,0X80,0X80,0X80,0X7A};
const char V[]={0x3E,0X40,0X80,0X40,0X3E};
const char W[]={0xFE,0X40,0X30,0X40,0XFE};
const char X[]={0xC6,0X28,0X10,0X28,0XC6};
const char Y[]={0x06,0X08,0XF0,0X08,0X06};
const char Z[]={0xC2,0XA2,0X92,0X8A,0X86};
const char CERO[]={0x7C,0X82,0X82,0X82,0X7C};
const char UNO[]={0x00,0X84,0XFE,0X80,0X00};
const char DOS[]={0x84,0XC2,0XA2,0X92,0X8C};
const char TRES[]={0x44,0X82,0X92,0X92,0X6C};
const char CUATRO[]={0x1E,0X10,0X10,0X10,0XFE};
const char CINCO[]={0x5E,0X92,0X92,0X92,0X62};
const char SEIS[]={0x7C,0X92,0X92,0X92,0X64};
const char SIETE[]={0x82,0X42,0X22,0X12,0X0E};
const char OCHO[]={0x6C,0X92,0X92,0X92,0X6C};
const char NUEVE[]={0x4C,0X92,0X92,0X92,0X7C};
//***********CARACTERES GRAFICOS**************
const char heart1[]={0X00,0x0C,0X1E,0X3E,0X7C};
const char heart2[]={0x1E,0X0C,0X00,0X00,0x00};
const char arrow1[]={0x10,0x38,0X7C,0XFE,0X38};
const char arrow2[]={0X38,0X38,0X38,0X38,0X00};
//FUNCION ACOMODA EN EL ARREGLO pf[]
[COLOR=Red]//PATRON DE COLUMNAS DEL CARACTER
void letra(char ro[])
{int i;
for(i=0;i<5;i++)
pf[jota+i]=ro[i];
jota=jota+5;
}[/COLOR]
//FUNCION BUSCA PATRON DEL CARACTER "bor"
//CCS NO MANEJA POINTERS EN MEMORIA DE CODIGO, LO CUAL HACE
//NECESARIO TRANSFERIR PRIMERAMENTE LA INFORMACION A UN
//BUFFER TEMPORAL bu[].
void swatch(char bor)
{
int i; //variable local
char bu[5]; //BUFFER TEMPORAL
switch(bor) //FUNCION SWITCH/CASE
{
case '.':for(i=0;i<5;i++){bu[i]=PUNTO[i];};break;
case ' ':for(i=0;i<5;i++){bu[i]=SPACE[i];};break;
case 'A':for(i=0;i<5;i++){bu[i]=A[i];};break;
case 'B':for(i=0;i<5;i++){bu[i]=B[i];};break;
case 'C':for(i=0;i<5;i++){bu[i]=C[i];};break;
case 'D':for(i=0;i<5;i++){bu[i]=D[i];};break;
case 'E':for(i=0;i<5;i++){bu[i]=E[i];};break;
case 'F':for(i=0;i<5;i++){bu[i]=F[i];};break;
case 'G':for(i=0;i<5;i++){bu[i]=G[i];};break;
case 'H':for(i=0;i<5;i++){bu[i]=H[i];};break;
case 'I':for(i=0;i<5;i++){bu[i]=RI[i];};break;
case 'J':for(i=0;i<5;i++){bu[i]=J[i];};break;
case 'K':for(i=0;i<5;i++){bu[i]=KA[i];};break;
case 'L':for(i=0;i<5;i++){bu[i]=L[i];};break;
case 'M':for(i=0;i<5;i++){bu[i]=M[i];};break;
case 'N':for(i=0;i<5;i++){bu[i]=N[i];};break;
case 'O':for(i=0;i<5;i++){bu[i]=O[i];};break;
case 'P':for(i=0;i<5;i++){bu[i]=P[i];};break;
case 'Q':for(i=0;i<5;i++){bu[i]=Q[i];};break;
case 'R':for(i=0;i<5;i++){bu[i]=R[i];};break;
case 'S':for(i=0;i<5;i++){bu[i]=S[i];};break;
case 'T':for(i=0;i<5;i++){bu[i]=T[i];};break;
case 'U':for(i=0;i<5;i++){bu[i]=U[i];};break;
case 'V':for(i=0;i<5;i++){bu[i]=V[i];};break;
case 'W':for(i=0;i<5;i++){bu[i]=W[i];};break;
case 'X':for(i=0;i<5;i++){bu[i]=X[i];};break;
case 'Y':for(i=0;i<5;i++){bu[i]=Y[i];};break;
case 'Z':for(i=0;i<5;i++){bu[i]=Z[i];};break;
case '0':for(i=0;i<5;i++){bu[i]=CERO[i];};break;
case '1':for(i=0;i<5;i++){bu[i]=UNO[i];};break;
case '2':for(i=0;i<5;i++){bu[i]=DOS[i];};break;
case '3':for(i=0;i<5;i++){bu[i]=TRES[i];};break;
case '4':for(i=0;i<5;i++){bu[i]=CUATRO[i];};break;
case '5':for(i=0;i<5;i++){bu[i]=CINCO[i];};break;
case '6':for(i=0;i<5;i++){bu[i]=SEIS[i];};break;
case '7':for(i=0;i<5;i++){bu[i]=SIETE[i];};break;
case '8':for(i=0;i<5;i++){bu[i]=OCHO[i];};break;
case '9':for(i=0;i<5;i++){bu[i]=NUEVE[i];};break;
case '%':for(i=0;i<5;i++){bu[i]=heart1[i];};break;
case '&':for(i=0;i<5;i++){bu[i]=heart2[i];};break;
case 'ü':for(i=0;i<5;i++){bu[i]=UDI[i];};break;
case '/':for(i=0;i<5;i++){bu[i]=arrow1[i];};break;
case '(':for(i=0;i<5;i++){bu[i]=arrow2[i];};break;
}
[COLOR=Red]letra(bu); //acomoda patrón de columnas[/COLOR]
}
Última edición por un moderador: