|
TIC5234+Attiny2313, Алгоритм работы с дисплеем |
|
|
|
Jan 20 2011, 11:06
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 14-12-05
Пользователь №: 12 204

|
Есть небольшой проэктик под который заложил дисплей TIC5234 и Attiny2313. Начал разбиратся с дисплеем, накатал библиотеку. Всё скомпелировалось и работает но только библиотека работы с дисплеем занимает больше половины флеши Attiny2313, а задач ещё много. Может кто-то с ним работал и есть более компактная библиотека? P.S. У дисплея TIC5234 контроллер является обычным сдвиговым регистром на 49 бит. Загружаются биты последовательно начиная с 49-го. Дело в том что у него есть куча дополнительных сегментов которые мне использовать не нужно. А сегменты знакомест разбросаны как попало. Немогли бы Вы мне подсказать как тогда формировать пакет 49 бит для загрузки в дисплей в таком случае? Вот тут его мучают http://www.xdevs.com/e107_plugins/conte ... content.21 Вот его pdf http://www.trt.ru/products/tic/pdf/segment/TIC5234.PDF Заранее благодарю за помощь. вот пример библиотеки
Сообщение отредактировал sabrat - Jan 20 2011, 11:07
|
|
|
|
|
Jan 20 2011, 12:15
|
Частый гость
 
Группа: Участник
Сообщений: 181
Регистрация: 26-11-10
Пользователь №: 61 198

|
Цитата(sabrat @ Jan 20 2011, 13:06)  ...но только библиотека работы с дисплеем занимает больше половины флеши Attiny2313, а задач ещё много. Не удивительно, если для хранения 50 бит использовать 50 int'ов, а для кодирования используется вагон switch/case и присваиваний. Странно что вообще влезает. Для начала хотя бы сделайте битовый, а не целочисленный массив, правда вряд ли это кардинально поможет, надо искать в корне другой подход. Цитата(sabrat @ Jan 20 2011, 13:06)  Неправильная ссылка.
|
|
|
|
|
Jan 20 2011, 12:46
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 25-03-10
Из: Москва
Пользователь №: 56 197

|
Переписать (перепишу) на ассемблере. И оставшуюся программу - тоже :-).
|
|
|
|
|
Jan 20 2011, 12:50
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 14-12-05
Пользователь №: 12 204

|
Цитата(SergeyGrig @ Jan 20 2011, 15:46)  Переписать (перепишу) на ассемблере. И оставшуюся программу - тоже :-). На Сях никак?
|
|
|
|
|
Jan 20 2011, 13:01
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 25-03-10
Из: Москва
Пользователь №: 56 197

|
К сожалению (хотя и небольшому), но на Сях - я не пинг-понг. Зато все остальные - легко.
|
|
|
|
|
Jan 20 2011, 13:12
|
Участник

Группа: Участник
Сообщений: 27
Регистрация: 14-12-05
Пользователь №: 12 204

|
Цитата(SergeyGrig @ Jan 20 2011, 16:01)  К сожалению (хотя и небольшому), но на Сях - я не пинг-понг. Зато все остальные - легко. если можно то и на асме будет понятно алгоритм
|
|
|
|
|
Jan 21 2011, 16:46
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(sabrat @ Jan 20 2011, 16:12)  если можно то и на асме будет понятно алгоритм Делаем массив во числу загружаемых сегментов (там надо загрузить 80 битов, но, поскольку остальные нули, то 50 байтов хватит). В каждом элементе адрес бита в некоем "исходном буфере" (обычный битмап, организованный как удобнее, типа по байту на цифру с одинаковой расстановкой сегментов в битах, плюс байт на транспаранты). Адресация как удобнее, 4+4 либо 5+3 бита. При формировании очередного бита на вывод загружаем байт из таблицы, по нему проверяем "исходный" бит, копируем его значение на выходе, стробируем... Тут особо спешить некуда (при работе с этими индикаторами нужны заметные задержки, существенно больше, чем для самого драйвера ML1001). Думаю, идея понятна ?
|
|
|
|
|
Jan 21 2011, 21:45
|
Частый гость
 
Группа: Свой
Сообщений: 142
Регистрация: 19-11-05
Пользователь №: 11 103

|
Цитата(PCBExp @ Jan 22 2011, 01:21)  [...] Первое что пришло на ум - сделать что-то типа "прозрачного" контроллера. Например, "наливаем" по RS232 16*32=512 восьмибитных символов в память какого нибудь AVR (если бит в 1 то соответствующий ему пиксел светится, если в 0 - не светится) . А потом с помощью этого AVR разворачиваем эту "точечную" картинку. От картинок динамичности не требуется. А если что и выдумают то при скорости порта 115200 и 16МГц у AVR вроде как все должно быть гладко и плавно. Но создается ощущение что изобретаю велосипед. Наверняка есть более красивое решение. Может даже и дисплеи есть готовые - подскажите что-нибудь люди добрые.... Большинство графических дисплеев с контроллером тормозные, порой очень сильно... Пример TIC32 и TIC218. Но тут больше I2C виноват несмотря на 400 кГц. Проявляется как прорисовка полного экрана за 1-2 секунды. С параллельной шиной чуть побыстрее, но тоже контроллер может сам по себе томозить(смотри время выполнения команд в даташите). Лучше если дисплей виден как память в адресном пространстве, тогда все зависит только от процесора.
|
|
|
|
|
Jan 21 2011, 22:34
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(rezident @ Jan 22 2011, 01:03)  Не передать, а отрисовать (отобразить). Laptop прав (хотя про 1-2 с немного преувеличил, я бы оценил отрисовку экрана 128*64 в 0,5-0,7с), TICи с интерфейсом I2C довольно тормозные дисплеи. Даже при комнатной температуре, не говоря уже о минусе. Да, но сказано было "виноват I2C". А интерфейс-то чем провинился, если стекляшка тормозная ? Буфер загружается за десятки mS, а уж сколько времени займет собственно переориентация кристаллов - вопрос только к химии. При изменении 4 раза в секунду качество более-менее приемлемое (хотя некие цветовые артефакты на бело-синих индикаторах наблюдаются). На сайте "Гаммы" есть ролик с анимированной графикой на таком модуле - там десятки Hz. Тоже вполне пристойно. При комнатной температуре, по крайней мере.
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|