Teckentabellsgenerator

Planering och tankar kring eventuella framtida projekt.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Teckentabellsgenerator

Inlägg av Korken »

Godagens!

Jag har skrivit ett gäng med tabeller med data för tecken till grafiska LCDer och det tar satans så lång tid att göra varje ny tabell.
Så jag fick tummen ut och började designa ett program som man kan designa tecken i.
Såhär ser den nuvarande designen ut:
char_gen.png
För stunden gör den inget, men när den är klar så ska den generera tabeller i C och ASM är tanken.
Några tankar/idéer? Något som ska läggas till/tas bort?
Kom med förslag!

Mvh
Emil


Tabellkoden som bildas:

Kod: Markera allt

C kod:

const unsigned char char_array[][5] PROGMEM =
{
	{0b01111110, 0b10010000, 0b10010000, 0b10010000, 0b01111110}, //A
	{0b11111110, 0b10010010, 0b10010010, 0b10010010, 0b01101100}, //B
	...
	...
	...
	{0b11100000, 0b00010000, 0b00011110, 0b00010000, 0b11100000}, //Y
	{0b10000110, 0b10001010, 0b10010010, 0b10100010, 0b11000010}  //Z
};


Assembler kod:

char_array:
.db 0b01111110, 0b10010000, 0b10010000, 0b10010000, 0b01111110, 0b11111110, 0b10010010, 0b10010010, 0b10010010, 0b01101100  ;A, B
.db 0b01111100, 0b10000010, 0b10000010, 0b10000010, 0b01000100, 0b11111110, 0b10000010, 0b10000010, 0b01000100, 0b00111000  ;C, D
...
...
...
.db 0b01111100, 0b00000010, 0b00011100, 0b00000010, 0b01111100, 0b10000010, 0b01101100, 0b00010000, 0b01101100, 0b10000010  ;W, X
.db 0b11100000, 0b00010000, 0b00011110, 0b00010000, 0b11100000, 0b10000110, 0b10001010, 0b10010010, 0b10100010, 0b11000010  ;Y, Z
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Teckentabellsgenerator

Inlägg av v-g »

Dumt inlägg kanske men jag gjorde en enklare variant. Jag har en BMPbild där jag gör hela teckenserien (eller vilka bokstäver man nu önskar) sen kör jag om hela bilden till .asm. Därefter plockar man bara bort raderna man inte vill ha och det är klart.

Nu funkar iofs min kod mest till KS0108 men borde ju vara liknande principer.

För övrigt är min totalt fulkodad i VB6 och den "grafiska" presentationen är i en textbox :vissla:

Funkar gör det iaf :mrgreen:

Bild
Användarvisningsbild
LHelge
Inlägg: 1772
Blev medlem: 2 september 2007, 18:25:31
Ort: Östergötland
Kontakt:

Re: Teckentabellsgenerator

Inlägg av LHelge »

Jag har också gjort ett liknande program, skillnaden där var att jag tillät variabel teckenbredd genom att lagra varje teckens bredd i första byten. lite mer overhead men ser mycket bättre ut.

Är det någon som är intresserad lägger jag gärna upp källkoden, det är skrivet i C#.
Användarvisningsbild
Korken
Inlägg: 2230
Blev medlem: 3 februari 2006, 19:19:36
Ort: Luleå, Porsön

Re: Teckentabellsgenerator

Inlägg av Korken »

Spännande! :)

Jag funderade också på samma lösning, men märkte att det skulle ta mer plats om jag gjorde så, dock de beror på hur jag designar mina tecken.
Lägg gärna upp koden om du vill! Tänkte lägga upp min när den är klar. :)
sneaky
Inlägg: 1621
Blev medlem: 22 juni 2009, 18:38:42

Re: Teckentabellsgenerator

Inlägg av sneaky »

Jag brukar använda The Dot Factory som jag tycker är trevligt. Det är Open Source så det kanske finns några godbitar där som du kan sno för att förbättra ditt eget program :)
Användarvisningsbild
LHelge
Inlägg: 1772
Blev medlem: 2 september 2007, 18:25:31
Ort: Östergötland
Kontakt:

Re: Teckentabellsgenerator

Inlägg av LHelge »

Jag övervägde väl egenligen två olika lösningar:

1. Man anpassar teckenbredden i minnet efter det bredaste tecknet + 1, låter den första byten vara den utnyttjade bredden som sedan är det man ritar ut. Fördelen med denna, det är ganska enkelt att hitta rätt bokstav (första bokstaven + offset) nackdel, det går åt mycket minne.

2. Man har variabel teckenbredd även i minnet. Fördel: Overheaden blir bara en byte per tecken. Nackdel: man måste loopa igenom hela alfabetet för att hitta vart i minnet ö befinner sig.

Mitt val föll på den första lösningen, mest för att det projekt jag byggde programmet för hade bättre marginaler vad gäller minne än vad gäller beräkningskraft.

Jag kan lägga upp programmet ikväll när jag kommer hem.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31160
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Re: Teckentabellsgenerator

Inlägg av MadModder »

Om man med variabel bredd istället har en lookup-tabell som talar om var alla tecken finns då? Behövs ju knappt någon beräkningskraft då. Och det blir snyggare text.
Funkar ju t.o.m rätt snabbt i basic på en C64... ;)
Användarvisningsbild
LHelge
Inlägg: 1772
Blev medlem: 2 september 2007, 18:25:31
Ort: Östergötland
Kontakt:

Re: Teckentabellsgenerator

Inlägg av LHelge »

Är medelbredden en pixel smalare än maxbredden så sparar du inget minne på det.
Användarvisningsbild
LHelge
Inlägg: 1772
Blev medlem: 2 september 2007, 18:25:31
Ort: Östergötland
Kontakt:

Re: Teckentabellsgenerator

Inlägg av LHelge »

Här finns mitt program om det är någon som vill titta på det. otroligt dåligt kommenterat och dokumenterat, men jag gjorde det för att jag behövde ett typsnitt till ett projekt, och tanken var väl att varken jag eller någon annan skulle använda det igen.
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
digitaliz
Inlägg: 278
Blev medlem: 10 oktober 2003, 21:27:38
Ort: Stockholm, Sverige

Re: Teckentabellsgenerator

Inlägg av digitaliz »

Bra projekt! :)
Jag gjorde ett liknande program i HTML/Javascript en gång för sisådär 10 år sedan. Letade efter det i förrgår när jag skulle fixa in Å och å i en LCD-modul, men kunde inte hitta det så det blev till att använda papper och penna denna gång... hade inte sett denna tråden i fredags... :)
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31160
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Re: Teckentabellsgenerator

Inlägg av MadModder »

LHelge skrev:Är medelbredden en pixel smalare än maxbredden så sparar du inget minne på det.
Nej, men nu hade du ju ingen direkt begränsning av minne, så det är ju ett sätt att få snyggare text med lite kraft.
Användarvisningsbild
LHelge
Inlägg: 1772
Blev medlem: 2 september 2007, 18:25:31
Ort: Östergötland
Kontakt:

Re: Teckentabellsgenerator

Inlägg av LHelge »

Det är väl en smaksak, ingen större skillnad mot min lösning nr 1 på variabel teckenbredd eller? Varken prestandamässigt eller minnesmässigt?

Som jag skrev tidigare är programmet anpassat för lösning nr 1.
Användarvisningsbild
MadModder
Co Admin
Inlägg: 31160
Blev medlem: 6 september 2003, 13:32:07
Ort: MadLand (Enköping)
Kontakt:

Re: Teckentabellsgenerator

Inlägg av MadModder »

Hmm... Läste genom första punkten noggrant nu. Jag fattade det först som att du även skrev ut alla med samma bredd... :p
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Re: Teckentabellsgenerator

Inlägg av v-g »

Mitt superprogram har en fast teckenbredd så man får rita och göra alla tecken lika breda. Lite smådrygt vid punkter osv men men det funkar ju hyffsat.
Användarvisningsbild
LHelge
Inlägg: 1772
Blev medlem: 2 september 2007, 18:25:31
Ort: Östergötland
Kontakt:

Re: Teckentabellsgenerator

Inlägg av LHelge »

Funkar gör det definitivt, men jag störde mig mest på att det såg fult ut på skärmen.
Skriv svar