|
светодиодная панель 7х21, Подскажите как реализовать? |
|
|
|
Jan 8 2011, 16:49
|
Участник

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

|
Есть светодиодная панель 7х21 собранная на четырех 74hc595 все подключено к меге8, пытаюсь реализовать бегущую строку. Но вот беда попал в тупик уже несколько дней сдвинуться не могу строка движется не как строка а как столбец вверх, и как это исправить не пойму. Мало опыта у меня в этом деле, сильно не пинайте. Исходник на винавр прилагаю. Подскажите как это исправить?
|
|
|
|
|
Jan 8 2011, 19:50
|
Участник
  
Группа: Свой
Сообщений: 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).
|
|
|
|
|
Jan 9 2011, 03:28
|
Участник

Группа: Участник
Сообщений: 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). фонт я делал сам, там еще не все буквы доделаны, а точнее сказать переделаны, но там все что вывожу они "стоя", а вот как попиксельно сдвигать? можно кусочек примера или разжевать? а то я такое не вытворял. Заранее благодарен!
|
|
|
|
|
Jan 9 2011, 09:16
|
Участник

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

|
дык это понятно что их нужно сдвигать, но их ее нужно и объединить, то есть когда еденица сдвигается на ее мест о должна въезжать побитно двойка, но как это реализовать я не пойму. сдвигать пробовал например единица сдвигается потом исчезает и пипейц двойку то как туды запихнуть не врублюся никак. Простите за тупость но читото не доходит.
|
|
|
|
|
Jan 9 2011, 13:31
|
Участник

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

|
Цитата(ae_ @ Jan 9 2011, 16:32)  А схему можно увидеть? проще будет разобраться. Схема с протеуса только.
|
|
|
|
|
Jan 9 2011, 14:44
|

Участник

Группа: Участник
Сообщений: 59
Регистрация: 26-08-08
Из: Ереван
Пользователь №: 39 828

|
Привет всем.Тебе повезло,я сделал строки на 192*16,240*32.Сейчас мучаюсь над china программой LedCenter, у этого очень крутая структура. Совет 1-> не мучай себя,управляй через SPI,это и быстро и без проблем.У меня mega на 12MHZ,clk SPI max*2,работает на ОК.время строки 1,8 мс на 16 строк,ты можешь и по медленее.
--------------------
ARM_enia
|
|
|
|
|
Jan 9 2011, 18:01
|

Частый гость
 
Группа: Свой
Сообщений: 179
Регистрация: 1-10-07
Из: НЧ
Пользователь №: 30 966

|
В качестве совета - делайте сразу аналог функции bitblt(). Когда Вам надоест текст бегущий справо налево можно быстро будет пришнуровать "эффект", например, движение слева направо  )) или сверху вниз..или еще как душа пожелает  .
|
|
|
|
|
Jan 10 2011, 13:12
|
Участник

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

|
Цитата(Stepan_L @ Jan 9 2011, 20:44)  Привет всем.Тебе повезло,я сделал строки на 192*16,240*32.Сейчас мучаюсь над china программой LedCenter, у этого очень крутая структура. Совет 1-> не мучай себя,управляй через SPI,это и быстро и без проблем.У меня mega на 12MHZ,clk SPI max*2,работает на ОК.время строки 1,8 мс на 16 строк,ты можешь и по медленее.  А в чем мне повезло :-) ? Когда есть интерфейс SPI то я именно так и делаю. В этой схеме тоже используется трех проводное управление, на мой взгляд разница лиш только в том что тут так сказать программный SPI ... а во всем остальном одно и тоже если я не ошибаюсь. Цитата(kosyak© @ Jan 10 2011, 00:01)  В качестве совета - делайте сразу аналог функции bitblt(). Когда Вам надоест текст бегущий справо налево можно быстро будет пришнуровать "эффект", например, движение слева направо  )) или сверху вниз..или еще как душа пожелает  . Советы эт хорошо..... но вот примерчик бы как это тут реализовать!
|
|
|
|
|
Jan 10 2011, 14:57
|
Участник

Группа: Участник
Сообщений: 57
Регистрация: 9-07-08
Из: Волгоградская обл
Пользователь №: 38 838

|
Цитата(adruha @ Jan 10 2011, 19:12)  Советы эт хорошо..... но вот примерчик бы как это тут реализовать! готовые примерчики теперь только за денюшки делают , всем семью кормить надо в свое время делали через циклы попиксельного сдвига из буферных значение (иначе как высветить например половина выдвигаемой цифры или символа) вот и пришлось дополнительно ставить память , работка еще та оказалась пока все варианты пропесали сейчас думаю делают подругому!!! сталкиватся пока неприходилось
|
|
|
|
|
Jan 10 2011, 15:18
|
Участник

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

|
Цитата(vvkka @ Jan 10 2011, 20:57)  готовые примерчики теперь только за денюшки делают , всем семью кормить надо
в свое время делали через циклы попиксельного сдвига из буферных значение (иначе как высветить например половина выдвигаемой цифры или символа) вот и пришлось дополнительно ставить память , работка еще та оказалась пока все варианты пропесали
сейчас думаю делают подругому!!! сталкиватся пока неприходилось Учитывая сколько я уже бъюсь с этим я готов заплатить! Сколько?
|
|
|
|
|
Jan 11 2011, 12:58
|
Участник

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

|
Больше нет соображений!?
|
|
|
|
|
Jan 11 2011, 13:29
|
Участник
  
Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695

|
Цитата(adruha @ Jan 11 2011, 23:58)  Больше нет соображений!? да какие деньги?! за что?! а подумать?! предлагаю двигаться от простого к сложному: 1) вариант по-символьного сдвига работает правильно? когда сдвигать "1234", "234?", "34??", "4???" 2) сделать просто бегущую вертикальную линию/точку, справа налево, но уже попиксельно, безо всяких фонтов. "___ |", "__|_", "_|__", ... 3) перерисовать фонт символами "на боку", так проще выводить по-пиксельно. 4) начинать с левого конца дисплея, даже с символа левее дисплея, сдвинуть его на N бит, то что вышло за пределы+правый край символа справа - вывести на дисплей, то же самое проделать вправо с остальными символами, сливая вместе выдвинутый хвост символа слева и текущий символ, тоже сдвинутый на N бит. и т.д. исходником на С не помогу, т.к. не владею. могу на асме. ещё у Вас регистры на схеме включены не последовательно, это так задумано? для бегущей строки намного удобнее соединить последовательно: 1,2,3, а не 3,1,2.
|
|
|
|
|
Jan 11 2011, 17:47
|
Участник

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

|
Цитата(ae_ @ Jan 11 2011, 19:29)  да какие деньги?! за что?! а подумать?! предлагаю двигаться от простого к сложному: 1) вариант по-символьного сдвига работает правильно? когда сдвигать "1234", "234?", "34??", "4???" 2) сделать просто бегущую вертикальную линию/точку, справа налево, но уже попиксельно, безо всяких фонтов. "___ |", "__|_", "_|__", ... 3) перерисовать фонт символами "на боку", так проще выводить по-пиксельно. 4) начинать с левого конца дисплея, даже с символа левее дисплея, сдвинуть его на N бит, то что вышло за пределы+правый край символа справа - вывести на дисплей, то же самое проделать вправо с остальными символами, сливая вместе выдвинутый хвост символа слева и текущий символ, тоже сдвинутый на N бит. и т.д. исходником на С не помогу, т.к. не владею. могу на асме. ещё у Вас регистры на схеме включены не последовательно, это так задумано? для бегущей строки намного удобнее соединить последовательно: 1,2,3, а не 3,1,2. Да говорю же я уже в отчаянии вот и готов на любые жертвы чтобы добиться результата! А я его все ровно победю любыми путями но разумными:-) ! Я к сожалению на асме ни бум бум.... так что мне это не поможет! По поводу регистров, ет так задумано не мной, эт китайцы. Я пытаюсь русифицировать изделие.
|
|
|
|
|
Jan 12 2011, 10:09
|
Группа: Новичок
Сообщений: 6
Регистрация: 18-08-07
Из: Омск
Пользователь №: 29 871

|
Могу вам помочь - пишите MasterM12@mail.ru или icq 400384398? думаю договоримся...
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|