Fonter till grafisk LCD
Fonter till grafisk LCD
Hej
Jag är ute efter fonter till en 128x64. Där en byte motsvarar 8 bitar på höjden (Y-led). Finns väl någon här som lekt med sådant och har lite tabeller hemma? Gärna i hex-format. Vet i alla fall att Illuwatar har sysslat med sånt för ett par år sedan.
Jag är ute efter fonter till en 128x64. Där en byte motsvarar 8 bitar på höjden (Y-led). Finns väl någon här som lekt med sådant och har lite tabeller hemma? Gärna i hex-format. Vet i alla fall att Illuwatar har sysslat med sånt för ett par år sedan.
Re: Fonter till grafisk LCD
FastLcd kan generera sådana.
http://www.fastavr.com/Downloads_act.htm
http://www.fastavr.com/Downloads_act.htm
Re: Fonter till grafisk LCD
Kod: Markera allt
/ Font 8x7 pixel
const uint8_t font_standard[101][7] = {
/* 00 */ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
/* 01 ! */ CHAR_UNDEFINED,
/* 02 " */ CHAR_UNDEFINED,
/* 03 # */ {0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x00, 0x00},
/* 04 --*/ {0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00}, // non-ASCII $ => -- (long hyphen)
/* 05 % */ CHAR_UNDEFINED,
/* 06 d */ {0x60, 0x58, 0x46, 0x58, 0x60, 0x00, 0x00}, // non-ASCII & => (delta)
/* 07 ' */ CHAR_UNDEFINED,
/* 08 ( */ {0x3E, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00},
/* 09 ) */ {0x41, 0x3E, 0x00, 0x00, 0x00, 0x00, 0x00},
/* 0A * */ {0x3e, 0x7F, 0x7F, 0x7F, 0x3e, 0x00, 0x00},//Sensor
/* 0B + */ CHAR_UNDEFINED,
/* 0C , */ {0x80, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00},
/* 0D - */ {0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00},
/* 0E . */ {0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00},
/* 0F _ */ {0x00, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00},
/* 10 0 */ {0x3e, 0x41, 0x41, 0x41, 0x3e, 0x00, 0x00}, // digits are monospaced
/* 11 1 */ {0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, 0x00},
/* 12 2 */ {0x71, 0x49, 0x49, 0x49, 0x46, 0x00, 0x00},
/* 13 3 */ {0x41, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00},
/* 14 4 */ {0x1C, 0x12, 0x11, 0x7F, 0x10, 0x00, 0x00},
/* 15 5 */ {0x4F, 0x49, 0x49, 0x49, 0x31, 0x00, 0x00},
/* 16 6 */ {0x3E, 0x49, 0x49, 0x49, 0x30, 0x00, 0x00},
/* 17 7 */ {0x01, 0x71, 0x09, 0x05, 0x03, 0x00, 0x00},
/* 18 8 */ {0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00},
/* 19 9 */ {0x06, 0x49, 0x49, 0x49, 0x3E, 0x00, 0x00},
/* 1A : */ {0x00, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00},
/* 1B */ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // non-ASCII ; => (space in same width as digits)
/* 1C / */ {0x00, 0x00, 0x40, 0x38, 0x07, 0x00, 0x00},
/* 1D = */ {0x14, 0x14, 0x14, 0x14, 0x00, 0x00, 0x00},
/* 1E > */ CHAR_UNDEFINED,
/* 1F ? */ {0x02, 0x01, 0xB1, 0x09, 0x06, 0x00, 0x00},
/* 20 @ */ CHAR_UNDEFINED,
/* 21 A */ {0x78, 0x16, 0x11, 0x16, 0x78, 0x00, 0x00},
/* 22 B */ {0x7f, 0x49, 0x49, 0x49, 0x36, 0x00, 0x00},
/* 23 C */ {0x3e, 0x41, 0x41, 0x41, 0x41, 0x00, 0x00},
/* 24 D */ {0x7f, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x00},
/* 25 E */ {0x7f, 0x49, 0x49, 0x49, 0x41, 0x00, 0x00},
/* 26 F */ {0x7f, 0x09, 0x09, 0x09, 0x01, 0x00, 0x00},
/* 27 G */ {0x3e, 0x41, 0x49, 0x49, 0x79, 0x00, 0x00},
/* 28 H */ {0x7f, 0x08, 0x08, 0x08, 0x7f, 0x00, 0x00},
/* 29 I */ {0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
/* 2A J */ {0x20, 0x40, 0x40, 0x3f, 0x00, 0x00, 0x00},
/* 2B K */ {0x7f, 0x08, 0x14, 0x22, 0x41, 0x00, 0x00},
/* 2C L */ {0x7f, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00},
/* 2D M */ {0x7f, 0x06, 0x18, 0x06, 0x7f, 0x00, 0x00},
/* 2E N */ {0x7f, 0x06, 0x08, 0x30, 0x7f, 0x00, 0x00},
/* 2F O */ {0x3e, 0x41, 0x41, 0x41, 0x3e, 0x00, 0x00},
/* 30 P */ {0x7f, 0x09, 0x09, 0x09, 0x06, 0x00, 0x00},
/* 31 Q */ {0x3e, 0x41, 0x41, 0x21, 0x5e, 0x40, 0x00},
/* 32 R */ {0x7f, 0x09, 0x19, 0x29, 0x46, 0x00, 0x00},
/* 33 S */ {0x46, 0x49, 0x49, 0x49, 0x31, 0x00, 0x00},
/* 34 T */ {0x01, 0x01, 0x7f, 0x01, 0x01, 0x00, 0x00},
/* 35 U */ {0x3f, 0x40, 0x40, 0x40, 0x3f, 0x00, 0x00},
/* 36 V */ {0x07, 0x38, 0x40, 0x38, 0x07, 0x00, 0x00},
/* 37 W */ {0x07, 0x38, 0x40, 0x38, 0x40, 0x38, 0x07},
/* 38 X */ {0x63, 0x14, 0x08, 0x14, 0x63, 0x00, 0x00},
/* 39 Y */ {0x03, 0x04, 0x78, 0x04, 0x03, 0x00, 0x00},
/* 3A Z */ {0x61, 0x51, 0x49, 0x45, 0x43, 0x00, 0x00},
/* 3B [ */ {0x7f, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00},
/* 3C \ */ CHAR_UNDEFINED,
/* 3D ] */ {0x00, 0x00, 0x00, 0x41, 0x7f, 0x00, 0x00},
/* 3E ^ */ CHAR_UNDEFINED,
/* 3F _ */ CHAR_UNDEFINED,
/* 40 ° */ {0x02, 0x05, 0x02, 0x00, 0x00, 0x00, 0x00}, // non-ASCII ` => °
/* 41 a */ {0x20, 0x54, 0x54, 0x54, 0x78, 0x00, 0x00},
/* 42 b */ {0x7f, 0x44, 0x44, 0x44, 0x38, 0x00, 0x00},
/* 43 c */ {0x38, 0x44, 0x44, 0x44, 0x44, 0x00, 0x00},
/* 44 d */ {0x38, 0x44, 0x44, 0x44, 0x7f, 0x00, 0x00},
/* 45 e */ {0x38, 0x54, 0x54, 0x54, 0x58, 0x00, 0x00},
/* 46 f */ {0x7e, 0x05, 0x05, 0x00, 0x00, 0x00, 0x00},
/* 47 g */ {0x18, 0xa4, 0xa4, 0xa4, 0x7c, 0x00, 0x00},
/* 48 h */ {0x7f, 0x04, 0x04, 0x04, 0x78, 0x00, 0x00},
/* 49 i */ {0x00, 0x00, 0x7d, 0x00, 0x00, 0x00, 0x00},
/* 4A j */ {0x80, 0x7d, 0x00, 0x00, 0x00, 0x00, 0x00},
/* 4B k */ {0x7f, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00},
/* 4C l */ {0x00, 0x02, 0x7E, 0x00, 0x00, 0x00, 0x00},
/* 4D m */ {0x7c, 0x04, 0x7c, 0x04, 0x78, 0x00, 0x00},
/* 4E n */ {0x7c, 0x04, 0x04, 0x04, 0x78, 0x00, 0x00},
/* 4F o */ {0x38, 0x44, 0x44, 0x44, 0x38, 0x00, 0x00},
/* 50 p */ {0xfc, 0x24, 0x24, 0x24, 0x18, 0x00, 0x00},
/* 51 q */ {0x18, 0x24, 0x24, 0x24, 0xfc, 0x00, 0x00},
/* 52 r */ {0x7c, 0x08, 0x04, 0x04, 0x00, 0x00, 0x00},
/* 53 s */ {0x58, 0x54, 0x54, 0x34, 0x00, 0x00, 0x00},
/* 54 t */ {0x00, 0x3f, 0x44, 0x44, 0x00, 0x00, 0x00},
/* 55 u */ {0x3c, 0x40, 0x40, 0x40, 0x7c, 0x00, 0x00},
/* 56 v */ {0x0c, 0x30, 0x40, 0x30, 0x0c, 0x00, 0x00},
/* 57 w */ {0x3c, 0x40, 0x38, 0x40, 0x3c, 0x00, 0x00},
/* 58 x */ {0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x00},
/* 59 y */ {0x1c, 0xa0, 0xa0, 0xa0, 0x7c, 0x00, 0x00},
/* 5A z */ {0x64, 0x54, 0x54, 0x4c, 0x00, 0x00, 0x00},
/* 5B ä */ {0x20, 0x55, 0x54, 0x54, 0x79, 0x00, 0x00}, // non-ASCII { => ä
/* 5C | */ CHAR_UNDEFINED,
/* 5D ö */ {0x39, 0x44, 0x44, 0x44, 0x39, 0x00, 0x00}, // non-ASCII } => ö
/* 5E ü */ {0x3d, 0x40, 0x40, 0x40, 0x7d, 0x00, 0x00}, // non-ASCII ~ => ü
/* 5F */ {0xF0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00}, // non-ASCII ? => (empty char) (1 pixel space in text)
/* 60 */ {0x38, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00},
/* 61 */ {0x00, 0x40, 0x40, 0x40, 0x38, 0x00, 0x00},
/* 62 */ {0x00, 0x00, 0x01, 0x01, 0x0E, 0x00, 0x00},
/* 63 */ {0x0E, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00},
/* 64 */ {0x00, 0x00, 0x00, 0x01, 0x0e, 0x00, 0x00}
};
Re: Fonter till grafisk LCD
Fagge: tack för länken. Ska testa när jag orkar köra igång min windows XP.
RDX: tack för koden, 8 bitars är en bra början !
Nu vet jag inte vad som finns med i FastAVR, men jag är också ute efter fonter som är lite större, gärna 16 bitar på höjden eller större.
RDX: tack för koden, 8 bitars är en bra början !
Nu vet jag inte vad som finns med i FastAVR, men jag är också ute efter fonter som är lite större, gärna 16 bitar på höjden eller större.
Re: Fonter till grafisk LCD
Det var ju kul, nu har jag två st olika 5x7 fonter att leka med. Tackar! 
exempel: (en pixel motsvarar ## )

exempel: (en pixel motsvarar ## )
Kod: Markera allt
RDX*
##
## ##
## ##
##########
## ##
## ##
## ##
blueint
######
## ##
## ##
## ##
##########
## ##
## ##
Re: Fonter till grafisk LCD
Jag har också lekt med fonter till grafiska display och jag hittade på ett roligt sätt att "skapa" valfri storlek:
Skriv bokstäverna i Paint eller liknande pixelbaserat program, sedan förstorar man och skriver ner hur de ska se ut.
Svårast är att på prickarna vid åäö att hamna rätt men är man lite kreativ går det lätt.
Skriv bokstäverna i Paint eller liknande pixelbaserat program, sedan förstorar man och skriver ner hur de ska se ut.
Svårast är att på prickarna vid åäö att hamna rätt men är man lite kreativ går det lätt.
Re: Fonter till grafisk LCD
blueint: de du hänvisar till verkar ju vara standardfonter som funnits sen 60-talet... finns väl knappast nån copyright på dem. Möjligtvis att själva C-koden skulle vara skyddad? Man får väl ändra namnet på arrayen så borde det problemet också vara löst.
Re: Fonter till grafisk LCD
Var står det att dom härstammar från 60-talet?
Är ju författarens död + 70 år numera..
Är ju författarens död + 70 år numera..
Re: Fonter till grafisk LCD
Det ska väl vara verkshöjd på grejerna också för att de skall omfattas av svensk upphovsrättslagstiftning?
Och just göra 5x7-font går ju inte att göra på så värst många olika sätt. Kan man ens göra 10 olika varianter av "A"?
Det blir ju i såna fall ungefär som att hävda upphovsrätt för ett gitarrackord.
Och just göra 5x7-font går ju inte att göra på så värst många olika sätt. Kan man ens göra 10 olika varianter av "A"?
Det blir ju i såna fall ungefär som att hävda upphovsrätt för ett gitarrackord.
Re: Fonter till grafisk LCD
Det är ju bara att leta upp en gammal utskrift från en matrisskrivare och jämföra. Men du kanske har designat dom helt själv?Var står det att dom härstammar från 60-talet?
Re: Fonter till grafisk LCD
Jag har använt bmp2glcd för att skapa lite andra fonter.
Jag skriver texten i paint och skapar bilder för varje siffra/bokstav sedan är det bara att konvertera bilderna till hex-format.
Jag skriver texten i paint och skapar bilder för varje siffra/bokstav sedan är det bara att konvertera bilderna till hex-format.
Kod: Markera allt
#define 8_24_GLCD_HEIGHT 23
#define 8_24_GLCD_WIDTH 18
static char 8_24_glcd_bmp[]={
0x00, 0xf8, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0x9f, 0x0f, 0x0f, 0x9f, 0xff, 0xff, 0xfe, 0xfe, 0xfc, 0xf8, 0x00,
0xe0, 0xf8, 0xf9, 0xff, 0xff, 0xff, 0x1f, 0x0f, 0x0f, 0x0f, 0x0f, 0x3f, 0xff, 0xff, 0xff, 0xf9, 0xf8, 0xe0,
0x07, 0x0f, 0x1f, 0x3f, 0x3f, 0x7f, 0x7e, 0x78, 0x78, 0x78, 0x78, 0x7e, 0x7f, 0x3f, 0x3f, 0x1f, 0x0f, 0x03
};