# Konvertiere PixelFontGenerator 6 generierte Proportionalschrift in etwas komprimierteres für den ATmega328p
# henni, 150920
BEGIN{
FS=",";
i=0;
min=80;
}
/^0x/ {
k=strtonum($1); // Zeichenbreite
w[i]=k;
if (min>k) min=k;
if (max<k) max=k;
z=NF-2; // Zeilenzahl
for (j=0;j<z;j++) data[i,j]=strtonum($(j+2));
i++;
}
END {
print "//Zeichen=" i " Breiten min=" min " max=" max;
pix=0;
for (k=0; k<i; k+=2) {
h=w[k+1];
l=w[k];
printf("0x%X%X,",h?h-min:0,l-min);
pix+=h+l;
}
print;
print "// Zeilenlaenge (Pixel)=" pix;
bit=0;
byte=0;
for (n=0; n<z; n++) {
# print "// Zeile " n;
for (k=0; k<i; k++) {
for (l=lshift(1,w[k]-1);l;l=rshift(l,1)) {
byte+=byte;
if (and(l,data[k,n])) byte++;
bit++;
if (!and(bit,7)) {printf("0x%02X,",byte); byte=0;}
if (!and(bit,127)) print;
}
}
# print "// bit=" bit;
}
if (and(bit,7)) printf("0x%02X,",lshift(byte,8-and(bit,7)));
print;
print "// bit=" bit " x=" pix " y=" z " x*y=" z*pix
# for (i=0; i<10; i++) {
# for (j=0; j<10; j++) {
# printf("%X,",data[i,j]);
# }
# print;
# }
}
Detected encoding: UTF-8 | 0
|