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

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

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

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


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Led матрица 32*16 для бегущей строки


Led матрица 32*16 для бегущей строки

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

1

Здравствуйте, уважаемые форумчане, может кто-то из Вас работал с матрицей для бегущей строки Qiang Li P10 или им подобных?   Информацию не могу найти ни них. http://sg.uploads.ru/t/6g3EQ.jpg

0

2

Что то на официальном форуме было, а также на bascomforum.de

0

3

Должно помочь: http://lightportal.info/publ/videoehkra … /8-1-0-111

0

4

что-то искал по ним, всё что есть:  https://transfiles.ru/ikxxa

+2

5

Большое спасибо всем кто откликнулся, буду пытаться изучить.

0

6

Здравствуйте, подключил к 8 atmega, по примеру который прислал Александр. Получилось вот что...http://s3.uploads.ru/t/wvmPH.jpg

пример

+1

7

Дайте пожалуйста совет как шрифты к этому коду добавить, мне нужны только цифры, в связи со своеобразной загрузкой регистров панели не соображу как это сделать. http://s7.uploads.ru/t/aum9F.jpg

0

8

Ну вы же вывели выше текст

+1

9

поясню. Не он текст вывел, а моя программа.
В ней, в dat разделе, на веки вечные вделана эта надпись.

Символ "рисуется" в этой матрице весьма специфично... Я просто сделал: в Пеинте сделал надпись, сохранил как bmp моонохромную картинку, потом программой (есть в архиве выше) превратил это в последовательность байт (для Си, но самостоятельно заменил 0x## на принятое в Баском), вручную поставил какие байты когда выдавать.
То есть, никакого "написал" и тебе отобразилось не получится.
или писать для ПК конвертер, который типовой шрифт "пересортирует" под эту матрицу, или делать "в лоб": для отображения "1" вывести такую-то последовательность байт, для "2" - такую и так далее.

0

10

Ясно. Ну ..делать буфер, брать шрифт, и выводить с помощью математики..

0

11

Здравствуйте, шрифт 8*16 выводить получилось, но хотелось бы 6*8 выводить в две строки на одном модуле, только тут для меня есть загвоздка, которую не могу победить уже дней 5 :-).    Шрифт в массиве находится в байтах. Если я создаю шрифт 6*8 и вывожу на дисплей, то у меня пробелы большие между символами. Насколько я понимаю нужно делать что-то типа видео буфера, а только потом выводить...  Но опять при построении картинки в буфере  проблема тех же 8 бит.   Как быть, может есть у кого мысли на сей счёт. Может кто-то готов взяться помочь за материальное вознаграждение?

0

12

Маски, сдвиги вам в помощь.

+1

13

Юрий, у меня проблема собственно заключается в том что нужно к байту одной строки 1 знака прибавить 2 бита первой строки от второго знака. Искал на форуме подобное, но не нашёл. Опыта в программировании не много, а задача не простая для меня. Если не затруднит, может есть какие-то примеры масок.

0

14

На форуме bascomforum.de нашёл проект на P10 модулях цветных, но там очень исходник сложный.

код RGB P10

0

15

я примерно такое делаю в своём контроллере, правда, вывожу на GLCD
напомните через неделю, когда вернусь домой.

+1

16

Спасибо, буду ждать, через неделю напишу.

Отредактировано catalex (2019-11-08 20:14:55)

0

17

Тоже вот под ногами лежит панелька, думаю на ней вдохновится.
Вроде без ошибок нарисовал, распиновка используемых контактов.
http://sg.uploads.ru/t/azmWs.jpg

0

18

У вас немного другая, у меня монохромная. По расположению контактов примерно тоже самое, у Вас только одним выводом больше. Чуть позже выложу свой исходник, приведу его маленько в порядок. Не правильно у меня получается overley раскладывать переменную по байтам. Может дадите совет. :-)

0

19

catalex написал(а):

У вас немного другая

Такае-же. Просто я не могу найти схему подключения и застрял на этой стадии  :D
Ваш код не смог запустить, попробую сам написать:
http://s7.uploads.ru/t/WbNpF.jpg

Свернутый текст

Ещё статейка

Не могу запустить никак на 10PC1D1, никак не слушается.

Отредактировано Ev3658 (2019-11-11 01:29:18)

0

20

Вот жуть то какая!!!! Она же с динамичной индикацией!!!!
То-есть памяти в панели всего да ничего - 128 байт, по этому надо их загонять в цикле 4 раза для полного кадра  :canthearyou:

Отредактировано Ev3658 (2019-11-11 02:17:52)

0

21

Все эти матрицы спроектированы таким образом, чтобы было: дешевое производство, малое потребление (на сколько это возможно). Это всё накладывает на обратную сторону медали кучу других проблем как, производительное железо/контроллер (т.к. всё обслуживание ложится на его плечи). Это не WS2812. :dontknow:

0

22

Блин, у меня не та заполняемость что на картинке.
Кому интересно, вот, проверьте:

Свернутый текст

Видео работы: https://yadi.sk/i/NpmimTyDKt7BYg

Отредактировано Ev3658 (2019-11-11 14:55:47)

0

23

Не весь мозг ещё пропил  :crazyfun:

Видео: https://yadi.sk/d/EReW5bTJVWIn2A

КОД

+3

24

Медленно как-то работает.

0

25

RDW написал(а):

Медленно как-то работает.

Там замедлитель:

Код:
Incr Tm                                                  'для замедления
   If Tm = 10 Then

Да и код вывода бы оптимизировать:

Код:
Reset A_pin : Reset B_pin
  Triglsd = 4                                               'Сброс счётчика строк

  For Adrs = 1 To Lsdram                                    'Перебираем видео память
          Shiftout Data_pin , Clk_pin , Led(adrs) , 2       'Вывод данных
          Blsd = Adrs Mod Lsdstr                            'Проверяем
          If Blsd = 0 Then
            Decr Triglsd
            If Triglsd = 0 Then Triglsd = 4
            A_pin = Triglsd .0
            B_pin = Triglsd .1
            Set Stb_pin                                     'Дрыгаем защёлкой регистров
            Reset Stb_pin
          End If
  Next Adrs

  Set Stb_pin                                               'Дрыгаем защёлкой регистров
  Reset Stb_pin

0

26

Обратите внимание как выводится видео информация:

Код:
 For Adrs = 1 To 64                                'Рисуем заполнение по порядку
            If Adrs <= L Then
               Led(adrs) = 0 'Тут мы рисуем линию
               Else
               Led(adrs) = 254 'Тут мы ставим точку
            End If
          Next Adrs

Просто перебором от 1 до конца. Как рисуется видно на видео выше. Уже стало приемлемо делать знакогенератор.

Отредактировано Ev3658 (2019-11-12 12:38:55)

0

27

Вообщем, правда, признаюсь. Тут 99,9% логики и 0,1 процент пока не разбирался, но работает.
То-есть шрифт уже можно выводить пикселями.
Нужна оптимизация адресации 4х строк в кластере, может ещё чего умное бы  :glasses:

Видео: https://yadi.sk/i/vYBjgT0KNpeYpg

Код программы:

0

28

catalex написал(а):

Насколько я понимаю нужно делать что-то типа видео буфера, а только потом выводить... 

В предыдущем посте вывод сделал по пикселям, не знаю как быстро будет работать, но шрифт можно генерировать в любой точке экрана, главное не уходить за область памяти.

0

29

Рукожопный исходник

+4

30

В подпрограмме вывода точки деление нужно заменить сдвигом. Это даст значительное ускорение.
Ниже пример деления на 2. Если нужно на другое число (степеь двойки), то ещё нужно указать для Shift дополнительный параметр, на сколько байт сдвигать.
В хелпе описание есть.

Код:
Shift _kolzo , Right                                    'Заменяем деление на сдвиг... _kolzo = _kolzo / 2

А вообще желательно этот участок кода переписать на ассемблер.

+3


Вы здесь » Программирование ATMEL в BASCOM. » Вопросы - ответы » Led матрица 32*16 для бегущей строки