429 lines
12 KiB
C
429 lines
12 KiB
C
uint8_t Out5x7Char(char charater, uint8_t x, uint8_t y, uint8_t red, uint8_t green, uint8_t blue){
|
|
switch (charater){
|
|
case '0':
|
|
LineH(x+1,y,3,red,green,blue);
|
|
LineH(x+1,y+6,3,red,green,blue);
|
|
LineV(x,y+1,5,red,green,blue);
|
|
LineV(x+4,y+1,5,red,green,blue);
|
|
LineV(x+2,y+3,1,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case '1':
|
|
LineV(x+2,y,7,red,green,blue);
|
|
LineV(x+1,y+1,1,red,green,blue);
|
|
LineV(x,y+2,1,red,green,blue);
|
|
//LineV(x+1,y+3,1,red,green,blue);
|
|
return 3;
|
|
break;
|
|
case '2':
|
|
LineH(x,y+1,1,red,green,blue);
|
|
LineH(x+1,y,3,red,green,blue);
|
|
LineH(x+1,y+5,1,red,green,blue);
|
|
LineH(x+2,y+4,1,red,green,blue);
|
|
LineH(x+3,y+3,1,red,green,blue);
|
|
LineH(x,y+6,5,red,green,blue);
|
|
LineV(x+4,y+1,2,red,green,blue);
|
|
//LineV(x,y+4,2,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case '3':
|
|
LineH(x,y,4,red,green,blue);
|
|
LineH(x+1,y+3,3,red,green,blue);
|
|
LineH(x,y+6,4,red,green,blue);
|
|
LineV(x+4,y+1,2,red,green,blue);
|
|
LineV(x+4,y+4,2,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case '4':
|
|
LineH(x,y+3,5,red,green,blue);
|
|
LineV(x+4,y,7,red,green,blue);
|
|
LineV(x,y,4,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case '5':
|
|
LineH(x,y,5,red,green,blue);
|
|
LineH(x,y+3,4,red,green,blue);
|
|
LineH(x,y+6,4,red,green,blue);
|
|
LineV(x,y,4,red,green,blue);
|
|
LineV(x+4,y+4,2,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case '6':
|
|
LineH(x+1,y,3,red,green,blue);
|
|
LineH(x+4,y+1,1,red,green,blue);
|
|
LineH(x,y+3,4,red,green,blue);
|
|
LineH(x+1,y+6,3,red,green,blue);
|
|
LineV(x,y+1,5,red,green,blue);
|
|
LineV(x+4,y+4,2,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case '7':
|
|
LineH(x,y,5,red,green,blue);
|
|
LineV(x+4,y+1,2,red,green,blue);
|
|
LineV(x+3,y+3,2,red,green,blue);
|
|
LineV(x+2,y+5,2,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case '8':
|
|
LineH(x+1,y,3,red,green,blue);
|
|
LineH(x+1,y+3,3,red,green,blue);
|
|
LineH(x+1,y+6,3,red,green,blue);
|
|
LineV(x,y+1,2,red,green,blue);
|
|
LineV(x+4,y+1,2,red,green,blue);
|
|
LineV(x,y+4,2,red,green,blue);
|
|
LineV(x+4,y+4,2,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case '9':
|
|
LineH(x+1,y,3,red,green,blue);
|
|
LineH(x+1,y+3,4,red,green,blue);
|
|
LineH(x+1,y+6,3,red,green,blue);
|
|
LineV(x,y+1,2,red,green,blue);
|
|
LineV(x+4,y+1,2,red,green,blue);
|
|
LineV(x+4,y+4,2,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case ':':
|
|
LineV(x,y+2,1,red,green,blue);
|
|
LineV(x,y+4,1,red,green,blue);
|
|
return 1;
|
|
break;
|
|
case '.':
|
|
LineV(x,y+6,1,red,green,blue);
|
|
return 1;
|
|
break;
|
|
case '-':
|
|
LineH(x,y+3,3,red,green,blue);
|
|
return 3;
|
|
break;
|
|
case ' ':
|
|
return 1;
|
|
break;
|
|
case '!':
|
|
LineV(x,y,5,red,green,blue);
|
|
LineV(x,y+6,1,red,green,blue);
|
|
return 1;
|
|
break;
|
|
case 'A':
|
|
LineV(x,y+1,6,red,green,blue);
|
|
LineH(x+1,y,3,red,green,blue);
|
|
LineH(x+1,y+3,3,red,green,blue);
|
|
LineV(x+4,y+1,6,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'C':
|
|
LineV(x,y+1,5,red,green,blue);
|
|
LineH(x+1,y,3,red,green,blue);
|
|
LineH(x+1,y+6,3,red,green,blue);
|
|
LineV(x+4,y+1,1,red,green,blue);
|
|
LineV(x+4,y+5,1,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'D':
|
|
LineV(x,y,7,red,green,blue);
|
|
LineH(x+1,y,3,red,green,blue);
|
|
LineH(x+1,y+6,3,red,green,blue);
|
|
LineV(x+4,y+1,5,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'E':
|
|
LineV(x,y,7,red,green,blue);
|
|
LineH(x+1,y,3,red,green,blue);
|
|
LineH(x+1,y+3,2,red,green,blue);
|
|
LineH(x+1,y+6,3,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'F':
|
|
LineV(x,y,7,red,green,blue);
|
|
LineH(x+1,y,3,red,green,blue);
|
|
LineH(x+1,y+3,2,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'G':
|
|
LineV(x,y+1,5,red,green,blue);
|
|
LineH(x+1,y,3,red,green,blue);
|
|
LineH(x+1,y+6,3,red,green,blue);
|
|
LineH(x+2,y+3,2,red,green,blue);
|
|
LineV(x+4,y+1,1,red,green,blue);
|
|
LineV(x+4,y+3,4,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'H':
|
|
LineH(x,y+3,5,red,green,blue);
|
|
LineV(x,y,7,red,green,blue);
|
|
LineV(x+4,y,7,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'I':
|
|
LineV(x+1,y+1,5,red,green,blue);
|
|
LineH(x,y,3,red,green,blue);
|
|
LineH(x,y+6,3,red,green,blue);
|
|
return 3;
|
|
break;
|
|
case 'K':
|
|
LineV(x,y,7,red,green,blue);
|
|
LineH(x+1,y+3,1,red,green,blue);
|
|
LineH(x+2,y+2,1,red,green,blue);
|
|
LineH(x+2,y+4,1,red,green,blue);
|
|
LineH(x+3,y+1,1,red,green,blue);
|
|
LineH(x+3,y+5,1,red,green,blue);
|
|
LineH(x+4,y,1,red,green,blue);
|
|
LineH(x+4,y+6,1,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'M':
|
|
LineV(x,y,7,red,green,blue);
|
|
LineV(x+1,y+1,1,red,green,blue);
|
|
LineV(x+2,y+2,2,red,green,blue);
|
|
LineV(x+3,y+1,1,red,green,blue);
|
|
LineV(x+4,y,7,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'N':
|
|
LineV(x,y,7,red,green,blue);
|
|
LineV(x+1,y+1,1,red,green,blue);
|
|
LineV(x+2,y+2,1,red,green,blue);
|
|
LineV(x+3,y+3,1,red,green,blue);
|
|
LineV(x+4,y,7,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'O':
|
|
LineH(x+1,y,3,red,green,blue);
|
|
LineH(x+1,y+6,3,red,green,blue);
|
|
LineV(x,y+1,5,red,green,blue);
|
|
LineV(x+4,y+1,5,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'P':
|
|
LineH(x,y,4,red,green,blue);
|
|
LineV(x,y+1,6,red,green,blue);
|
|
LineV(x+4,y+1,2,red,green,blue);
|
|
LineH(x+1,y+3,3,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'R':
|
|
LineH(x,y,4,red,green,blue);
|
|
LineV(x,y+1,6,red,green,blue);
|
|
LineV(x+4,y+1,2,red,green,blue);
|
|
LineH(x+1,y+3,3,red,green,blue);
|
|
LineH(x+2,y+4,1,red,green,blue);
|
|
LineH(x+3,y+5,1,red,green,blue);
|
|
LineH(x+4,y+6,1,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'S':
|
|
LineH(x+1,y,3,red,green,blue);
|
|
LineV(x,y+1,2,red,green,blue);
|
|
LineV(x+4,y+1,1,red,green,blue);
|
|
LineH(x+1,y+3,3,red,green,blue);
|
|
LineV(x+4,y+4,2,red,green,blue);
|
|
LineV(x,y+5,1,red,green,blue);
|
|
LineH(x+1,y+6,3,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'T':
|
|
LineH(x,y,5,red,green,blue);
|
|
LineV(x+2,y+1,6,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'U':
|
|
LineV(x,y,6,red,green,blue);
|
|
LineH(x+1,y+6,3,red,green,blue);
|
|
LineV(x+4,y,6,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'V':
|
|
LineV(x,y,5,red,green,blue);
|
|
LineV(x+4,y,5,red,green,blue);
|
|
LineV(x+1,y+5,1,red,green,blue);
|
|
LineV(x+2,y+6,1,red,green,blue);
|
|
LineV(x+3,y+5,1,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'W':
|
|
LineV(x,y,7,red,green,blue);
|
|
LineV(x+4,y,7,red,green,blue);
|
|
LineV(x+1,y+5,1,red,green,blue);
|
|
LineV(x+3,y+5,1,red,green,blue);
|
|
LineV(x+2,y+4,1,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'Z':
|
|
LineH(x,y,5,red,green,blue);
|
|
LineH(x,y+6,5,red,green,blue);
|
|
LineV(x+4,y+1,1,red,green,blue);
|
|
LineV(x+3,y+2,1,red,green,blue);
|
|
LineV(x+2,y+3,1,red,green,blue);
|
|
LineV(x+1,y+4,1,red,green,blue);
|
|
LineV(x,y+5,1,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'a':
|
|
LineV(x,y+3,3,red,green,blue);
|
|
LineV(x+3,y+3,4,red,green,blue);
|
|
LineH(x+1,y+2,2,red,green,blue);
|
|
LineH(x+1,y+6,2,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'b':
|
|
LineV(x,y,7,red,green,blue);
|
|
LineH(x+2,y+2,2,red,green,blue);
|
|
LineH(x+1,y+3,1,red,green,blue);
|
|
LineV(x+4,y+3,3,red,green,blue);
|
|
LineH(x+1,y+6,3,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'c':
|
|
LineV(x,y+3,3,red,green,blue);
|
|
LineH(x+1,y+2,2,red,green,blue);
|
|
LineH(x+3,y+5,1,red,green,blue);
|
|
LineH(x+1,y+6,2,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'd':
|
|
LineV(x,y+3,3,red,green,blue);
|
|
LineV(x+3,y,7,red,green,blue);
|
|
LineH(x+1,y+2,2,red,green,blue);
|
|
LineH(x+1,y+6,2,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'e':
|
|
LineV(x,y+3,3,red,green,blue);
|
|
LineV(x+3,y+3,1,red,green,blue);
|
|
LineH(x+1,y+2,2,red,green,blue);
|
|
LineH(x+1,y+4,2,red,green,blue);
|
|
LineH(x+1,y+6,3,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'f':
|
|
LineV(x+1,y+1,6,red,green,blue);
|
|
LineV(x+2,y,1,red,green,blue);
|
|
LineV(x+3,y+1,1,red,green,blue);
|
|
LineH(x,y+3,3,red,green,blue);
|
|
return 3;
|
|
break;
|
|
case 'g':
|
|
LineV(x,y+3,1,red,green,blue);
|
|
LineV(x+3,y+2,4,red,green,blue);
|
|
LineH(x+1,y+2,2,red,green,blue);
|
|
LineH(x+1,y+4,2,red,green,blue);
|
|
LineH(x+1,y+6,2,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'i':
|
|
LineV(x,y+1,1,red,green,blue);
|
|
LineV(x,y+3,4,red,green,blue);
|
|
return 1;
|
|
break;
|
|
case 'j':
|
|
LineV(x,y+5,1,red,green,blue);
|
|
LineV(x+1,y+2,1,red,green,blue);
|
|
LineV(x+1,y+6,1,red,green,blue);
|
|
LineV(x+2,y,1,red,green,blue);
|
|
LineV(x+2,y+2,4,red,green,blue);
|
|
return 3;
|
|
break;
|
|
case 'k':
|
|
LineV(x,y,7,red,green,blue);
|
|
LineV(x+1,y+4,1,red,green,blue);
|
|
LineV(x+2,y+3,1,red,green,blue);
|
|
LineV(x+2,y+5,1,red,green,blue);
|
|
LineV(x+3,y+2,1,red,green,blue);
|
|
LineV(x+3,y+6,1,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'l':
|
|
LineV(x,y,7,red,green,blue);
|
|
return 1;
|
|
break;
|
|
case 'm':
|
|
LineV(x,y+2,5,red,green,blue);
|
|
LineV(x+1,y+2,1,red,green,blue);
|
|
LineV(x+2,y+3,4,red,green,blue);
|
|
LineV(x+3,y+2,1,red,green,blue);
|
|
LineV(x+4,y+3,4,red,green,blue);
|
|
return 5;
|
|
break;
|
|
case 'n':
|
|
LineV(x,y+2,5,red,green,blue);
|
|
LineV(x+3,y+2,5,red,green,blue);
|
|
LineH(x+1,y+3,1,red,green,blue);
|
|
LineH(x+2,y+2,1,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'o':
|
|
LineH(x+1,y+2,2,red,green,blue);
|
|
LineH(x+1,y+6,2,red,green,blue);
|
|
LineV(x,y+3,3,red,green,blue);
|
|
LineV(x+3,y+3,3,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'p':
|
|
LineV(x,y+2,5,red,green,blue);
|
|
LineH(x+1,y+2,2,red,green,blue);
|
|
LineH(x+1,y+4,2,red,green,blue);
|
|
LineV(x+3,y+3,1,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'r':
|
|
LineV(x,y+2,5,red,green,blue);
|
|
LineH(x+1,y+3,1,red,green,blue);
|
|
LineH(x+2,y+2,1,red,green,blue);
|
|
LineV(x+3,y+3,1,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 's':
|
|
LineH(x+1,y+2,3,red,green,blue);
|
|
LineH(x+1,y+4,2,red,green,blue);
|
|
LineH(x,y+6,3,red,green,blue);
|
|
LineV(x,y+3,1,red,green,blue);
|
|
LineV(x+3,y+5,1,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 't':
|
|
LineV(x+1,y,6,red,green,blue);
|
|
LineV(x+2,y+6,1,red,green,blue);
|
|
LineV(x+3,y+5,1,red,green,blue);
|
|
LineH(x,y+2,3,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'u':
|
|
LineV(x,y+2,4,red,green,blue);
|
|
LineV(x+3,y+2,4,red,green,blue);
|
|
LineH(x+1,y+6,2,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'y':
|
|
LineV(x,y+2,2,red,green,blue);
|
|
LineV(x+3,y+2,4,red,green,blue);
|
|
LineH(x+1,y+4,2,red,green,blue);
|
|
LineH(x+1,y+6,2,red,green,blue);
|
|
return 4;
|
|
break;
|
|
case 'v':
|
|
LineV(x,y+2,4,red,green,blue);
|
|
LineV(x+2,y+2,4,red,green,blue);
|
|
//LineH(x+1,y+5,2,red,green,blue);
|
|
LineH(x+1,y+6,1,red,green,blue);
|
|
return 3;
|
|
break;
|
|
case 'z':
|
|
LineH(x,y+2,4,red,green,blue);
|
|
LineH(x,y+6,4,red,green,blue);
|
|
LineH(x+3,y+3,1,red,green,blue);
|
|
LineH(x+2,y+4,1,red,green,blue);
|
|
LineH(x+1,y+5,1,red,green,blue);
|
|
return 4;
|
|
break;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
void show5x7(uint8_t x, uint8_t y, char text[] , uint8_t red, uint8_t green, uint8_t blue){
|
|
uint8_t textlen = strlen(text);
|
|
for(uint8_t b=0;b<textlen;b++){
|
|
x += Out5x7Char(text[b],x,y,red,green,blue)+1;
|
|
}
|
|
|
|
}
|