Sari la conținut
ELFORUM - Forumul electronistilor

Generator de caractere


MirceaM

Postări Recomandate

Am gasit recent, in decembrie, un soft care stia sa genereze... generatoare de caractere in sensul urmator.Deci nu e vorba de a edita un caracter punand pe on sau off punctul dorit (oricat de grafic, atragator si simplu s-ar face asta) ci de a-i spune marimea caracterului (cati pe cati pixeli) si alte cateva lucruri (tipul de font) iar programul stia genereze un text sursa C tocmai bun de a fi inclus intr-un program oarecare. Am pierdut acest soft si nici nu stiu cum se numea.

Link spre comentariu
  • Răspunsuri 9
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • MirceaM

    6

  • Cristiano

    2

  • peshte

    1

Mi-ar folosi un asemenea soft (daca nu am fost prea clar).Imi amintesc ca facusem la cobra (sub CP/M) 64 de caractere pe rand in ecranul lui de numai 256 puncte pe rand. Aratau chinuit dar era mare lucru sa ai 64 de caractere in CP/M. 4 punctulete pt un caracter, inclusiv o coloana libera pt spatiere si aveam intregul set ASCII. In acelasi stil as putea sa fac 32 caractere x 8 randuri pe un LCD 128x64. Sau macar 5 puncte inclusiv spatierea orizontala, ceea ce ar asigura 25 caractere pe rand. Pana una alta mai caut acel soft. Isi aminteste cineva despre ce spun? Un soft care creeaza fisier sursa C (cu octetii scrisi in binar, sa se vada caracterul format din biti de 1), fisier tocmai bun de inclus in programul de aplicatie pentru un controller.

Link spre comentariu

Iar vad ca scriu dupa mine insumi ceea ce nu este frumos. Mea culpa.

 

Iata la ce mare cucerire a stiintei am ajuns in ultimele zile.

Cerinta este sa se scrie (modifice, editeze, dezvolte) generatoare de caractere asa incat sa fie cat mai usor de vizualizat si de modificat. Este bine sa se vada numai bitii de 1.

 

Solutia la care am ajuns este urmatoarea. In textul sursa al programului octetii din generatorul de caractere se scriu, obligatoriu, in binar, ca succesiune de 0 si 1. Ideal ar fi ca zero-urile sa nu se vada deloc, pentru ca forma caracterului (alcatuita din biti de 1) sa se vada si mai bine. Pentru treaba asta ("disparitia" zerourilor) am gasit solutia de a le inlocui cu ceva anume dupa cum se vede in continuare.

 

Avem in vedere generatorul standard de la multe LCD-uri, de 5x7 puncte.

In textul sursa C se definesc 256 de simboluri. De exemplu, primele 32 dintre acestea arata asa:

//#define _________ 0b00000000  // 00#define ________1 0b00000001  // 01#define _______1_ 0b00000010  // 02#define _______11 0b00000011  // 03#define ______1__ 0b00000100  // 04#define ______1_1 0b00000101  // 05#define ______11_ 0b00000110  // 06#define ______111 0b00000111  // 07#define _____1___ 0b00001000  // 08#define _____1__1 0b00001001  // 09#define _____1_1_ 0b00001010  // 0A#define _____1_11 0b00001011  // 0B#define _____11__ 0b00001100  // 0C#define _____11_1 0b00001101  // 0D#define _____111_ 0b00001110  // 0E#define _____1111 0b00001111  // 0F//#define ____1____ 0b00010000  // 10#define ____1___1 0b00010001  // 11#define ____1__1_ 0b00010010  // 12#define ____1__11 0b00010011  // 13#define ____1_1__ 0b00010100  // 14#define ____1_1_1 0b00010101  // 15#define ____1_11_ 0b00010110  // 16#define ____1_111 0b00010111  // 17#define ____11___ 0b00011000  // 18#define ____11__1 0b00011001  // 19#define ____11_1_ 0b00011010  // 1A#define ____11_11 0b00011011  // 1B#define ____111__ 0b00011100  // 1C#define ____111_1 0b00011101  // 1D#define ____1111_ 0b00011110  // 1E#define ____11111 0b00011111  // 1F//// . . .

Trebuie observat ca toate cele 256 simboluri incep cu underscore care este caracter admis in nume de variabile, chiar si ca prim caracter.

 

Apoi generatorul propriu-zis (array-ul) se declara asa:

const U08 FONT[51][5] ={ // //                         0x20 _________,   _________,   _________,   _________,   _________,   // //                         0x21 ! _________,   _________,   __1_11111,   _________,   _________,   // // . . . // //                         0x41 A __111111_,   _____1__1,   _____1__1,   _____1__1,   __111111_,   // //                         0x42 B __1111111,   __1__1__1,   __1__1__1,   __1__1__1,   ___11_11_,   // //                         0x43 C ___11111_,   __1_____1,   __1_____1,   __1_____1,   ___1___1_,   // // . . . //};

 

Ce spuneti?

Din pacate programul lui Cristiano nu stie sa creeze generatoare mici, de exemplu courier de 5x7.

Folosind acele 256 define-uri precizate mai sus, intentionez sa scriu un generator complet de 4x7 si poate chiar unul de 3x7.

Link spre comentariu

O sa tin minte ideea.Totusi, daca tot definesti seturile alea de caractere, mai ales 7x3, la care m-am gandit si eu (si am ajuns la concluzia ca nu se poate), le postezi te rog? Mi-ar trebui si mie.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări