Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

кирилизация на LCD
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=2870
Страница 1 от 1

Автор:  syrax [ Съб Сеп 09, 2006 11:34 am ]
Заглавие:  кирилизация на LCD

имам LCD с кирлизация, някои писал ли е код на С да вади символите без да си играя да пиша кода на всеки символ
като си пиша "Abcdef" нямам проблеми ама с кирлицата се разминава ASCII таблицата от на проца и на компилатора

Автор:  bateAz [ Съб Сеп 09, 2006 12:13 pm ]
Заглавие: 

Различават се таблиците на компа и на знакогенератора на LCD-то. Оттам ти идва проблемът. Аз не знам как може да се направи най-добре, аз го правя така: дефинирам си една константа - масив 256 знака, като индекс ми е ASCII кодът, който искам да изведа на дисплея, а стойността - кодът, който трябва да запиша в дисплея, за да се изведе символът, който искам. Недостатъкът е, че имаш в повече едно ровене в таблица и 256 байта.
Сигурно има и по-смислено решение, който го знае, да не си трае!

Едит: Реално масивът не е 256 байта, а по-малко. Първите 128 са си ОК и там не трябва прекодиране.

Автор:  Predator_MF [ Съб Сеп 09, 2006 3:16 pm ]
Заглавие: 

Вероятно говорите за HD44780-базираните, в такъв случай го правя по начина, който батето описва, таблицата е 128 байтова, наскоро пробвах в симулатора да пусна HD44780 с таблица за графичен дисплей (5х8 с кирилица) като чертая в CGRAM и после драскам по дисплея, там обаче времето за изчертаване е доста по-голямо, а и таблицата само с кирилица е 500 байта, но това е в случай в който дисплея няма кирилица.

Автор:  milenjs [ Нед Сеп 10, 2006 9:09 am ]
Заглавие: 

Може и да е баламско и малко хамалско, но когато съм ограничен от към памет го правя така - направил съм си табличка с ASCII кодвете на кирилишките букви в дисплея , в програмата си декларирам константни стрингове с ASCII кодовете за всяко едно нещо което искам да ми излезе на БГ и когато ми потрябва печатам стринга. Неудобното е че иска малко играчка да прехвърляш думите в ASCII последователности, примерно за Температура - $54,$65,$BC,$BE,$65,$70,$61,$BF,$79,$70,$61, 0 но като му свикнеш .

Автор:  syrax [ Нед Сеп 10, 2006 11:17 am ]
Заглавие: 

и аз за нещо такова си мислех да си напиша стринговете предварително , обаче ми се видя голяма играчка :)) може би така ще стане, правих го и по друг начин имам конвертер "BIN HEX ASCII COLOR DEC" от там си пиша HEX-а отдолу ми излиза буквения еквивалент Copy - Paste - и се получват едни много странни думички с яроглифи но като цяло LCD -то изкарва така кирлица :)))))) и пак си е гърбия

Автор:  milenjs [ Нед Сеп 10, 2006 11:41 am ]
Заглавие: 

Че си е гърч да се пишат - така си е, но като свикнеш с кодовете си пишеш без да гледаш аски таблицата. Някой друг да се сеща за по добро решение без ровене в таблица? Не съм чел подробно документацията, дали не може да се препрограмира знаковия генератор на дисплея или си е твърдо зададе?

Автор:  syrax [ Нед Сеп 10, 2006 11:43 am ]
Заглавие: 

мода да си добавя още 16 символа , оабче знаковата таблица е в РОМ-а на LCD-то

Автор:  zaphod [ Нед Сеп 10, 2006 1:27 pm ]
Заглавие: 

как са наредени буквите в лцдто? ако са наредени по латинската азбука, няма как освен таблица. но ако са наредени по българската азбука, просто добавяш някакъв офсет.

Автор:  bateAz [ Нед Сеп 10, 2006 1:36 pm ]
Заглавие: 

zaphod написа:
как са наредени буквите в лцдто? ако са наредени по латинската азбука, няма как освен таблица. но ако са наредени по българската азбука, просто добавяш някакъв офсет.


Различно. Най-често в знакогенератора липсват тези кирилски букви, които изглеждата еднакво и на латиница. Напр. кирилицата "АВЕКМНОР .. " просто я няма. Вместо нея слагаш латинските такива. Само с таблица май ще стане. :cry:

Автор:  zaphod [ Нед Сеп 10, 2006 6:18 pm ]
Заглавие: 

а, ясно. таблица, таблица.

Автор:  milenjs [ Нед Сеп 10, 2006 7:17 pm ]
Заглавие: 

Таблица, аски стринг или производителите да си коригират кодовата таблица :wink:

Автор:  Реконструктор [ Пон Сеп 18, 2006 8:25 am ]
Заглавие: 

bateAz написа:
Различават се таблиците на компа и на знакогенератора на LCD-то. Оттам ти идва проблемът. Аз не знам как може да се направи най-добре, аз го правя така: дефинирам си една константа - масив 256 знака, като индекс ми е ASCII кодът, който искам да изведа на дисплея, а стойността - кодът, който трябва да запиша в дисплея, за да се изведе символът, който искам. Недостатъкът е, че имаш в повече едно ровене в таблица и 256 байта.
Сигурно има и по-смислено решение, който го знае, да не си трае!

Едит: Реално масивът не е 256 байта, а по-малко. Първите 128 са си ОК и там не трябва прекодиране.


1-во правило на програмистите - никога не прави всеки път нещо, което може да се направи еднократно. ;) По-ефективното решение е дефиниране на таблица със стрингови константи, които се прекодират еднократно при инициализация.

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/