Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Glcd, шрифты, вывод на экран


Glcd, шрифты, вывод на экран

Сообщений 1 страница 9 из 9

1

добрый вечер всем!
такая ситуация: есть графический дисплей, которого нет в поддерживаемых Баскомом
сам дисплей я оживил и использую. Но понадобилось выводить на него произвольный текст в произвольном месте
как бы решил, с один но: я храню шрифты в коде программы, как переходить по этой "таблице"?
каждый символ - 8 точек.
командой Restore могу только указать место начала блока с данными шрифтов

делать в памяти ОЗУ массив не могу - не хватит под мои дела.

как вообще это делается по уму?

ЖКИ ST7920

0

2

используй оператор "Lookup", очень удобно
данные можно подключать как "DATA" или тупо файлом "$inc"
все данные хранятся в памяти программ

0

3

чисто для текста есть "Lookupstr"

0

4

можно реальные примеры?

данные лежат как data

как указывать нужную строку?

0

5

Ну, реальные примеры не получится, т.к. кода там с промежуточными вычислениями много, но объяснить можно. Всё весьма банально:

Код:
...
Txt_data = Lookup(txt_pos_font , Font_tst)
...
$inc Font_tst , Nosize , "Fonts_Courier_8x12++.fnt"

txt_pos_font - Word - адрес в памяти
Txt_data - Byte, сами данные из памяти

В моём случае был шрифт 8х12, т.е. каждые 12 байт - это следующий символ. В отличии от "Restore" (который может только сбрасывать позицию в 0), тут мы можем в произвольном порядке вытягивать данные из памяти программ.
"txt_pos_font" не может быть больше Word (2 байт), т.е. если у МК памяти программ больше, то придется как-то извращаться и хранить все данные вначале.

+1

6

Вместо "$inc", можно использовать и "data", выглядеть это будет так:

Код:
Font_tst:
         Data 12, 101, 43, 89, 79

0

7

хм
если верить справке Баскома, всё иначе... если работает так, как Вы пишите - я уже рад )))

а если: LOADLABEL и потом Cpeek ?

Отредактировано Александр Д. (2014-06-19 22:28:34)

0

8

Так у меня работает всё: http://avrhelp.mcselec.com/index.html?lookup.htm
Правда может зависит от версии Баскома, у меня 2.0.7.6.

"Cpeek" - это прямая адресация (что-то из старого), использовать вроде можно как "Lookup", но я не использовал.
Я из "Lookup" и мультики делал с субтитрами: https://vimeo.com/90051809 :D

0

9

всё, уже сделал на Lookup
затык был в моём инглише - не понимал тонкостей

благодарствую, RDW!

0


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Glcd, шрифты, вывод на экран