реклама на сайте
подробности

 
 
> светодиодная панель 7х21, Подскажите как реализовать?
adruha
сообщение Jan 8 2011, 16:49
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 11-12-07
Из: Москва
Пользователь №: 33 203



Есть светодиодная панель 7х21 собранная на четырех 74hc595 все подключено к меге8, пытаюсь реализовать бегущую строку. Но вот беда попал в тупик уже несколько дней сдвинуться не могу строка движется не как строка а как столбец вверх, и как это исправить не пойму. Мало опыта у меня в этом деле, сильно не пинайте. Исходник на винавр прилагаю. Подскажите как это исправить?
Прикрепленные файлы
Прикрепленный файл  at16_16_led.zip ( 2.31 килобайт ) Кол-во скачиваний: 42
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ae_
сообщение Jan 8 2011, 19:50
Сообщение #2


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Цитата(adruha @ Jan 9 2011, 03:49) *
Есть светодиодная панель 7х21 собранная на четырех 74hc595...

Хорошо было бы посмотреть на схему подключения, т.к. в файле font.h большинство символов 3х5, но встечаются и 7х8, 5х7, причём цифры 0...6 расположены "стоя", остальные символы - "лёжа" (3х5) и "лёжа на другом боку" - 7х8.
Поскольку текст для вывода = "01234561111", то используется только та часть фонта, где символы "стоя", но в исходнике я не увидел попиксельного сдвига символов для вывода на табло, только байтовый сдвиг. Поэтому текст и движется вверх.
Для бегущей строки надо каждый байт символа сдвигать влево, пока не сдвинем на ширину символа (зависит от используемого фонта, у Вас=7).
Go to the top of the page
 
+Quote Post
adruha
сообщение Jan 9 2011, 03:28
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 11-12-07
Из: Москва
Пользователь №: 33 203



Цитата(ae_ @ Jan 9 2011, 01:50) *
Хорошо было бы посмотреть на схему подключения, т.к. в файле font.h большинство символов 3х5, но встечаются и 7х8, 5х7, причём цифры 0...6 расположены "стоя", остальные символы - "лёжа" (3х5) и "лёжа на другом боку" - 7х8.
Поскольку текст для вывода = "01234561111", то используется только та часть фонта, где символы "стоя", но в исходнике я не увидел попиксельного сдвига символов для вывода на табло, только байтовый сдвиг. Поэтому текст и движется вверх.
Для бегущей строки надо каждый байт символа сдвигать влево, пока не сдвинем на ширину символа (зависит от используемого фонта, у Вас=7).


фонт я делал сам, там еще не все буквы доделаны, а точнее сказать переделаны, но там все что вывожу они "стоя", а вот как попиксельно сдвигать? можно кусочек примера или разжевать? а то я такое не вытворял. Заранее благодарен!
Go to the top of the page
 
+Quote Post
ae_
сообщение Jan 9 2011, 05:34
Сообщение #4


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Нужно сначала добиться по-символьной бегущей строки, например: "1234", "234_", "34__", "4___"
затем добавить промежуточные кадры со сдвигом на 1 бит влево. по 6 дополнительных кадров между фиксированными , когда символ точно попадает на своё знакоместо.

сдвигать влево побитно: var<<1, но нужно добавлять справа биты, которые выдвигаются из знакоместа справа.

начальный текст '01_'
0011100 0001000
0100010 0011000
0100010 0001000
0100010 0001000
0100010 0001000
0100010 0001000
0011100 0011100

текст сдвинут на 1 бит влево
0111000 0010000
1000100 0110000
1000100 0010000
1000100 0010000
1000100 0010000
1000100 0010000
0111000 0111001

текст сдвинут на 4 бита влево
1000001 0000000
0100011 0000000
0100001 0000000
0100001 0000000
0100001 0000000
0100001 0000000
1000011 1001111

текст '01_' сдвинут на 1 знакоместо влево (7 бит) получилось '1_?'
0001000 0000000
0011000 0000000
0001000 0000000
0001000 0000000
0001000 0000000
0001000 0000000
0011100 1111111
Go to the top of the page
 
+Quote Post
adruha
сообщение Jan 9 2011, 09:16
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 11-12-07
Из: Москва
Пользователь №: 33 203



дык это понятно что их нужно сдвигать, но их ее нужно и объединить, то есть когда еденица сдвигается на ее мест о должна въезжать побитно двойка, но как это реализовать я не пойму. сдвигать пробовал например единица сдвигается потом исчезает и пипейц двойку то как туды запихнуть не врублюся никак. Простите за тупость но читото не доходит.
Go to the top of the page
 
+Quote Post
ae_
сообщение Jan 9 2011, 10:32
Сообщение #6


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



А схему можно увидеть? проще будет разобраться.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- adruha   светодиодная панель 7х21, Подскажите как реализовать?   Jan 8 2011, 16:49
|- - adruha   Цитата(ae_ @ Jan 9 2011, 16:32) А схему м...   Jan 9 2011, 13:31
- - Stepan_L   Привет всем.Тебе повезло,я сделал строки на 192*16...   Jan 9 2011, 14:44
|- - adruha   Цитата(Stepan_L @ Jan 9 2011, 20:44) Прив...   Jan 10 2011, 13:12
|- - vvkka   Цитата(adruha @ Jan 10 2011, 19:12) Совет...   Jan 10 2011, 14:57
|- - adruha   Цитата(vvkka @ Jan 10 2011, 20:57) готовы...   Jan 10 2011, 15:18
- - kosyak©   В качестве совета - делайте сразу аналог функции b...   Jan 9 2011, 18:01
- - adruha   Больше нет соображений!?   Jan 11 2011, 12:58
|- - ae_   Цитата(adruha @ Jan 11 2011, 23:58) Больш...   Jan 11 2011, 13:29
|- - adruha   Цитата(ae_ @ Jan 11 2011, 19:29) да какие...   Jan 11 2011, 17:47
- - kosyak©   А бегущая строка будет иметь только "эффект...   Jan 11 2011, 16:17
- - MasterM12   Могу вам помочь - пишите MasterM12@mail.ru или icq...   Jan 12 2011, 10:09


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 10:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016