|
Виж темите без отговор | Виж активните теми
Дата и час: Пон Юли 27, 2026 5:10 pm
|
Страница 1 от 1
|
[ 12 мнения ] |
|
| Автор |
Съобщение |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
 кирилизация на LCD
имам LCD с кирлизация, някои писал ли е код на С да вади символите без да си играя да пиша кода на всеки символ
като си пиша "Abcdef" нямам проблеми ама с кирлицата се разминава ASCII таблицата от на проца и на компилатора
|
| Съб Сеп 09, 2006 11:34 am |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Различават се таблиците на компа и на знакогенератора на LCD-то. Оттам ти идва проблемът. Аз не знам как може да се направи най-добре, аз го правя така: дефинирам си една константа - масив 256 знака, като индекс ми е ASCII кодът, който искам да изведа на дисплея, а стойността - кодът, който трябва да запиша в дисплея, за да се изведе символът, който искам. Недостатъкът е, че имаш в повече едно ровене в таблица и 256 байта.
Сигурно има и по-смислено решение, който го знае, да не си трае!
Едит: Реално масивът не е 256 байта, а по-малко. Първите 128 са си ОК и там не трябва прекодиране.
|
| Съб Сеп 09, 2006 12:13 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Вероятно говорите за HD44780-базираните, в такъв случай го правя по начина, който батето описва, таблицата е 128 байтова, наскоро пробвах в симулатора да пусна HD44780 с таблица за графичен дисплей (5х8 с кирилица) като чертая в CGRAM и после драскам по дисплея, там обаче времето за изчертаване е доста по-голямо, а и таблицата само с кирилица е 500 байта, но това е в случай в който дисплея няма кирилица.
|
| Съб Сеп 09, 2006 3:16 pm |
|
 |
|
milenjs
Ранг: Форумен бог
Регистриран на: Сря Мар 08, 2006 2:12 pm Мнения: 2017 Местоположение: Котел
|
Може и да е баламско и малко хамалско, но когато съм ограничен от към памет го правя така - направил съм си табличка с ASCII кодвете на кирилишките букви в дисплея , в програмата си декларирам константни стрингове с ASCII кодовете за всяко едно нещо което искам да ми излезе на БГ и когато ми потрябва печатам стринга. Неудобното е че иска малко играчка да прехвърляш думите в ASCII последователности, примерно за Температура - $54,$65,$BC,$BE,$65,$70,$61,$BF,$79,$70,$61, 0 но като му свикнеш .
|
| Нед Сеп 10, 2006 9:09 am |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
и аз за нещо такова си мислех да си напиша стринговете предварително , обаче ми се видя голяма играчка  ) може би така ще стане, правих го и по друг начин имам конвертер "BIN HEX ASCII COLOR DEC" от там си пиша HEX-а отдолу ми излиза буквения еквивалент Copy - Paste - и се получват едни много странни думички с яроглифи но като цяло LCD -то изкарва така кирлица  ))))) и пак си е гърбия
|
| Нед Сеп 10, 2006 11:17 am |
|
 |
|
milenjs
Ранг: Форумен бог
Регистриран на: Сря Мар 08, 2006 2:12 pm Мнения: 2017 Местоположение: Котел
|
Че си е гърч да се пишат - така си е, но като свикнеш с кодовете си пишеш без да гледаш аски таблицата. Някой друг да се сеща за по добро решение без ровене в таблица? Не съм чел подробно документацията, дали не може да се препрограмира знаковия генератор на дисплея или си е твърдо зададе?
|
| Нед Сеп 10, 2006 11:41 am |
|
 |
|
syrax
Ранг: Новодошъл
Регистриран на: Сря Яну 18, 2006 7:19 pm Мнения: 127
|
мода да си добавя още 16 символа , оабче знаковата таблица е в РОМ-а на LCD-то
|
| Нед Сеп 10, 2006 11:43 am |
|
 |
|
zaphod
Ранг: Форумен бог
Регистриран на: Нед Юли 24, 2005 10:28 am Мнения: 2658
|
как са наредени буквите в лцдто? ако са наредени по латинската азбука, няма как освен таблица. но ако са наредени по българската азбука, просто добавяш някакъв офсет.
|
| Нед Сеп 10, 2006 1:27 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Различно. Най-често в знакогенератора липсват тези кирилски букви, които изглеждата еднакво и на латиница. Напр. кирилицата "АВЕКМНОР .. " просто я няма. Вместо нея слагаш латинските такива. Само с таблица май ще стане. 
|
| Нед Сеп 10, 2006 1:36 pm |
|
 |
|
zaphod
Ранг: Форумен бог
Регистриран на: Нед Юли 24, 2005 10:28 am Мнения: 2658
|
а, ясно. таблица, таблица.
|
| Нед Сеп 10, 2006 6:18 pm |
|
 |
|
milenjs
Ранг: Форумен бог
Регистриран на: Сря Мар 08, 2006 2:12 pm Мнения: 2017 Местоположение: Котел
|
Таблица, аски стринг или производителите да си коригират кодовата таблица 
|
| Нед Сеп 10, 2006 7:17 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
 |  |  |  | bateAz написа: Различават се таблиците на компа и на знакогенератора на LCD-то. Оттам ти идва проблемът. Аз не знам как може да се направи най-добре, аз го правя така: дефинирам си една константа - масив 256 знака, като индекс ми е ASCII кодът, който искам да изведа на дисплея, а стойността - кодът, който трябва да запиша в дисплея, за да се изведе символът, който искам. Недостатъкът е, че имаш в повече едно ровене в таблица и 256 байта. Сигурно има и по-смислено решение, който го знае, да не си трае!
Едит: Реално масивът не е 256 байта, а по-малко. Първите 128 са си ОК и там не трябва прекодиране. |  |  |  |  |
1-во правило на програмистите - никога не прави всеки път нещо, което може да се направи еднократно.  По-ефективното решение е дефиниране на таблица със стрингови константи, които се прекодират еднократно при инициализация.
|
| Пон Сеп 18, 2006 8:25 am |
|
|
|
Страница 1 от 1
|
[ 12 мнения ] |
|
Кой е на линия |
Потребители разглеждащи този форум: 0 регистрирани и 0 госта |
|
Вие не можете да пускате нови теми Вие не можете да отговаряте на теми Вие не можете да променяте собственото си мнение Вие не можете да изтривате собствените си мнения Вие не можете да прикачвате файл
|
|