Files
NTUhrVPxDesign/libraries/_NToolsFonts/char5x7.h
2024-03-04 12:35:37 +01:00

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;
}
}