Fonter till grafisk LCD

Lysdioder, Optiska sensorer, Fiberoptik, Displayer, Lasrar, Optiska kopplare
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Fonter till grafisk LCD

Inlägg av jesse »

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.
Användarvisningsbild
Fagge
Inlägg: 3930
Blev medlem: 27 maj 2003, 13:59:51
Ort: Blekinge

Re: Fonter till grafisk LCD

Inlägg av Fagge »

FastLcd kan generera sådana.
http://www.fastavr.com/Downloads_act.htm
Användarvisningsbild
RDX*
EF Sponsor
Inlägg: 1652
Blev medlem: 28 maj 2003, 22:52:04
Ort: Skåne - Lund

Re: Fonter till grafisk LCD

Inlägg av RDX* »

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}
};
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Fonter till grafisk LCD

Inlägg av jesse »

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.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: Fonter till grafisk LCD

Inlägg av Korken »

Denna kod kan kanske vara användbar: Länk
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Fonter till grafisk LCD

Inlägg av jesse »

Det var ju kul, nu har jag två st olika 5x7 fonter att leka med. Tackar! :P

exempel: (en pixel motsvarar ## )

Kod: Markera allt

RDX*

    ## 
  ##  ##  
  ##  ##
##########
##      ##
##      ##
##      ##
 

blueint

  ######
##      ##
##      ##
##      ##
##########
##      ##
##      ##


blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Fonter till grafisk LCD

Inlägg av blueint »

Hur är det med copyright på dom där fonterna..?
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Fonter till grafisk LCD

Inlägg av Icecap »

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.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Fonter till grafisk LCD

Inlägg av jesse »

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.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Fonter till grafisk LCD

Inlägg av blueint »

Var står det att dom härstammar från 60-talet?
Är ju författarens död + 70 år numera..
Nerre
Inlägg: 27229
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: Fonter till grafisk LCD

Inlägg av Nerre »

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.
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Fonter till grafisk LCD

Inlägg av jesse »

Var står det att dom härstammar från 60-talet?
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?
Användarvisningsbild
RDX*
EF Sponsor
Inlägg: 1652
Blev medlem: 28 maj 2003, 22:52:04
Ort: Skåne - Lund

Re: Fonter till grafisk LCD

Inlägg av RDX* »

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.

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