add proportional font

text_rendering
Eggert Jung 4 years ago
parent 8935a1e618
commit 5232d4c089

@ -158,16 +158,26 @@ void write_address(uint8_t addr){
gpio_set_level(GPIO_E, (addr&0x10)>>4); gpio_set_level(GPIO_E, (addr&0x10)>>4);
} }
uint8_t check_chr_width(uint8_t chr[]){
for(int i=6;i>=0;i--)
if(chr[i] != 0)
return i;
return 0;
}
void put_chr(uint8_t line, uint8_t pos, uint8_t chr[]){ void put_chr(uint8_t line, uint8_t pos, uint8_t chr[]){
for(int i=0;i<8;i++) for(int i=0;i<8;i++)
for(int j=0;j<7;j++) for(int j=0;j<7;j++){
fb[1+(line*10)+i][(pos*8)+j][0] = (chr[j]&(1<<i))>>i; fb[1+(line*10)+i][(pos)+j][0] = (chr[j]&(1<<i))>>i;
}
} }
void put_line(uint8_t line, char *str){ void put_line(uint8_t line, char *str){
uint8_t pos = 0; uint8_t pos = 0;
uint8_t disp_pos = 0;
while(str[pos] != 0){ while(str[pos] != 0){
put_chr(line, pos, font[str[pos]-0x20]); put_chr(line, disp_pos, font[str[pos]-0x20]);
disp_pos += check_chr_width(font[str[pos]-0x20]) + 3;
pos++; pos++;
} }
} }

Loading…
Cancel
Save