Jump to content
artos5

Вывод Данных На Бегущую Строку

Recommended Posts

Добрый день уважаемые коллеги!

Помогите разобраться...

Захотелось изучить принцип работы матрицы (светодиодного дисплея)

В общих чертах все хорошо понятно.

Индикация динамическая построчная .

Но запутался в схемотехнической организации ....

Почему все делают: вывод данных на строки , а "зажигание" этих же строк за счет переключения колонок 8х8 ?

Запутался из за этого наглухо... :(

Я почему то раньше думал всегда сделать поджигая строки, а в колонки выводить данные, так ведь проще, даже если надо крутить текст, то так сделать проще... Или я ошибаюсь?

Поясните пожалуйста кто в курсе!

Буду очень признателен за помощь! :)

PS: Не судите строго.. Самоучка + раньше не работал с матрицей ... работал только с семисегментным индикатором (динамическая индикация и вывод через регистры сдвига).

Вот пример: http://cxem.net/mc/mc150.php

организован поджиг строк.

Edited by artos5

Share this post


Link to post
Share on other sites

Как удобнее так и делай. Я самодельную матрицу 30 * 5 так и организовывал - вывод колонками. Мне кажется делают 8 * 8 чтобы уменьшить мирцание. Ведь если выводить много строк, время горение "Зазжоного" светодиода 1/количество строк. Возможно я не прав.

Share this post


Link to post
Share on other sites

Время вывода от этого не изменится :) Ведь надо также быстро тогда и данные выводить на "колонки".

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

Вот быстро набросал код:

void led_shou(char x1)
{
x=mask=0x80;
for (b=0; b<8; b++)// data_stroka
{
if(x & mask)data=1;
else data=0;
mask=mask>>1;
}
mask=0x80;
for (d=0; d<8; d++)// data_stolb
{
if(x1 & mask)data1=1;
else data1=0;
mask=mask>>1;
}
SH=1; SH=0;
x=x>>1;
}

Как теперь в него помещать двухмерный массив?

Что то не вкурю... :(

и это только 8х8 :)

Edited by artos5

Share this post


Link to post
Share on other sites

Привет, artos5.

Почему все делают: вывод данных на строки , а "зажигание" этих же строк за счет переключения колонок 8х8 ?

Это скорее всего от начального принятия организации матрицы символов. Так кодировались знакогенераторы видеокарты, матричного принтера. Так организована видеопамять в LCD дисплеях. Так и перешло сюда. Матрицы бывают 8х5 (строки/столбцы), 8х7, 8х8, 9х6 и др. Получается компактнее хранить информацию о символе 8байт (столбец) х 5 (штук). В твоем случае можно делать, как тебе удобно. Если не привязан к библиотеке вывода.

Edited by Геннадий

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

Геннадий , привет! Я так и подумал :) спасибо за подсказку!

А подскажи пожалуйста, как выводить из памяти (имею в виду двухмерный массив) на экран?

Можно словами :) (даже лучше) а код я напишу :)

1) создаю массив во флешь или внешней еепром 24Схх

// вот тут парюсь..

2) копирую в буферный массив

// вот тут парюсь..

3) с него вывожу на экран ( в сдвиговый регистр )

Как все вместе подружить?

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

Share this post


Link to post
Share on other sites

Начинать нужно со схемного решения, тогда код сам по себе в голове нарисуется.

Share this post


Link to post
Share on other sites

По мне так удобней выводить столбцами. Ориентироваться легче.

Например, есть знакогенератор 8х6 (8строк на 6столбцов). Размер данных символа - 6байт и два пустых байта для межсимвольного интервала. Всего имеем 8байт.Можно создать буфер графики, а можно выводить и без него, Делая обработку "на лету". Попробуем вывести в регистр дисплея. С буфером графики:

1. получим начальный адрес буфера,

2. счетчик выводимого символа на 0

3. берем первый байт, который является первым столбцом, первого (последнего) символа выводимой строки.

4. начинаем его сдвиг с выводом в последовательный регистр 595, это займет 8циклов сдвига,

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

6.Значит нам нужен будет 9-й байт массива графики (1выведенный+8смещение). Инкрементируешь счетчик выводимого символа на 1+8(см). Проверишь все ли символы вывел. Если нет, повторишь с п3 до п6.

7. Допустим у тебя строка состоит из 10 символов, Значит лучше использовать 10 регистров 595. Значит выводить первые столбцы будешь десять раз (соответствует кол-ву символов). Далее стробируешь перезапись из сдвигового регистра 595-го в параллельный и включаешь силовую линию питания первых столбцов всех символов.

8. Даешь некоторую задержку для свечения результата.

9. Изменишь начальный адрес чтения на второй байт масиива графики и повторишь все с п2. Таких циклов нужно сделать 8раз (по кол-ву столбцов индикатора).

Как-то так. Вот только я мыслю по ассемблерному. А ты наверное на Си пишешь.

Edited by Геннадий

Share this post


Link to post
Share on other sites

Фух.. Надо ещё пару раз перечитать :) спасибо за алгоритм! Я действительно мыслю на си :) никак не пойму как рисовать текст без мерцаний и искажений.. Вообще запутался... Я должен вывести 10 раз чтобы нарисовать кусок первых 10 букв , потом выдать силовое на включения этих столбцов. Потом снова 10 раз вывести в регистр и включить уже второй рядок, и так по кругу , верно?

Edited by artos5

Share this post


Link to post
Share on other sites

Да, так. Сначала 10 байт сдвинуть последовательно с выводом в регистр. У тебя получится информация о 10-ти первых столбцах (по 1-му в каждом знакоместе). Далее ты поджигаешь сегменты, чтобы эти столбцы засветились. Дашь небольшую паузу, чтобы глаза зафиксировали свечение. В это же время можешь выводить следующие столбцы в регистр (в его последовательные зашелки). После паузы и нового вывода, СНАЧАЛА ОТКЛЮЧАЕШЬ СИЛОВУЮ ЛИНИЮ, а потом переносишь из последовательных регистров 595-х в параллельные (для выхода) и снова включай силовую линию следующих столбцов. Такой вариант позволит освободиться от сливания изображения (наезда соседних данных друг на друга). Все это нужно сделать 8-мь раз (по кол-ву столбцов в знакоместе). Вся процедура (все столбцы на всех цифрах) дожна укладываться в интервал 10-20мС, что соответствует скорости регенерации дисплея 50-100ГЦ.

Share this post


Link to post
Share on other sites

Спасибо! Это получается надо настроить примерно на 1кГц прерывание и в нем "рулить" сдвиговыми регистрами? С учетом затраты времени на вывод данных в регистры, получится примерно 100Гц. Какую тактовую частоту лучше выставить? Я так понимаю на АВР от 12мГц ? А то и все 18.

Остался один вопрос: Как мне с массива знакогенератора перенести в буферный массив а потом с него залить в регистры?

Путаюсь с двух мерным массивом...

Edited by artos5

Share this post


Link to post
Share on other sites

Аrtos5 , повторю мудрый совет Alexa - Начинать нужно со схемного решения. Почитайте в гугле что такое статическая , динамическая индикация , определитесь что и как Вы хотите.

Сейчас Вы намешали все в кучу и пытаетесь получить вразумительный ответ , а ответы такие же как и вопросы.

Share this post


Link to post
Share on other sites

Остался один вопрос: Как мне с массива знакогенератора перенести в буферный массив а потом с него залить в регистры?

Это как организуешь в алгоритме. Можешь выводить из знакогенератора все столбцы символа в буфер и считывать со смещением (скажем 8байт) столбец каждого символа.

Можешь заполнить буфер не полными знакоместами, а столбцами требуемых симвлов и выводить их последовательно. Блин... Действительно бредовое объяснение получается. Давай-ка начинай со схемы, как swq25 сказал. А там и решение созреет.

Share this post


Link to post
Share on other sites

Аrtos5 , Почитайте в гугле что такое статическая , динамическая индикация ,

Вы наверное пошутили?!

Я прекрасно знаю что такое статическая индикация и что такое динамическая.

Давай-ка начинай со схемы, как swq25 сказал. А там и решение созреет.

Ок, буду тогда начинать со схемы :) Спасибо за оперативную помощь!

Share this post


Link to post
Share on other sites

А вот твой вывод в строку.

post-16151-0-79944200-1365741881_thumb.gif

Внизу, под знакоместами, ряд цифр, обозначающий номер такта в котором выводится данный байт.

Edited by Геннадий

Share this post


Link to post
Share on other sites

Спасибо Вам за подробное разъяснение :) Много чего прояснилось!

Share this post


Link to post
Share on other sites

Я раньше думал что вывод данных делается сплошными строками сверху вниз :)

Share this post


Link to post
Share on other sites

Можно и строками. Это зависит от реализации. Но, в данном случае, если строка будет "бежать" по горизонтали, то обработка будет легче... Обычно выбирают вариант с наименьшим кол-вом тактов для вывода всего символа. В твоем случае 8х8 равнозначно.

Edited by Геннадий

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By VOVSAR
      за все 500р+почта,пермь.
       

    • By quror
      Всем привет , пришел к вам за помощью.
      Есть у меня монитор старенький с IPS матрицей  (Acer S236HL 23") Проработав он с 2012 года  пришел конец матрице. Ремонт как сказали в сервисах "нерентабельный" неси мол на мусорку.
      Насмотревшись роликов про вторую жизнь я решил сделать из LED панели Софтбокс (светильник). Яркость подсветки очень достойная. В общем если все подключить к плате подсветка горит, но из за того что нет сигнала она гаснет через секунд 15. 
      И вот хочу у знающих людей узнать как правильнее сделать. Светодиодов  48 штук. Как их подключить чтобы они горели от розетки ? И что нужно выпаять из платы чтоб собрать рабочую схему этого дела? (просто конкретно в этом знаний мало) 
      Заранее спасибо за ответы , не судите строго  фото прикреплены ниже


    • By SergeyKa
      Попал мне в руки интересный светильник. Банальная игрушка - стоит копейки, но задача превратить эту игрушку в что-то более серьезное. В общем разобрал этот светильник там 6 светодиодов RGB, выглядят как обычный 1W светодиод с 6 выводами и TDS корпусом. Однако - этот прибор питается от напряжения 5 вольт мощностью в 5W и поэтому меня заинтересовало потребление светодиодов. Померив ток и напряжение каждой линии, я выяснил следующие параметры. Синяя линяя потребляет: 410 мА / 3,6 Вольт, Красная линия потребляет: 85 мА / 4,5 Вольт, Зелёная линия: 450 мА/ 3,45 Вольт. Подключены данные светодиоды по следующей схеме
       
      Последовательно, а красные параллельно и последовательно, хотя насколько знаю так подключать нельзя. С помощью нехитрых подсчётов выяснилось, что мощность одного светодиода равна 0,56655 Вт, я думал я неправильно посчитал, но открыв инструкцию к данному девайсу, увидел такую надпись "6 LED - 0.5W". В итоге всё сошлось. Однако, когда я рылся в интернете не нашёл таких светодиодов 0,5W RGB. Нашёл только 3W RGB в корпусе TDS.

      Даже сравнивая картинку из поиска гугла, видно что на данном светодиоде кристалы больше нежели на матрице от светового прибора.
      Вопросы такие.
      1) Встречал ли кто-нибудь RGB светодиоды мощностью 0,5W в таком исполнении?
      2) Возможно ли что те светодиоды 3W и просто была занижена сила тока подаваемая на них, что бы блок питание потянуло.
      3) Есть ли способы проверить мощность светодиодов. И как это сделать?
    • By brtv-z
      Ребяты доброго  хочу купить кота в мешке, а именно телек.  на матрице вертикальные полосы..  Как думаете, ему уже даже гладкие, белые доски не помогут ?))  матрице п....ц или все таки это проблема шлейфов или т-кона??  тв LG 47/// конечно же хозяйка не даст вскрыть при покупке ...
    • By brtv-z
      Ребяты доброго  хочу купить кота в мешке, а именно телек.  на матрице вертикальные полосы..  Как думаете, ему уже даже гладкие, белые доски не помогут ?))  матрице п....ц или все таки это проблема шлейфов или т-кона??  тв LG 47/// конечно же хозяйка не даст вскрыть при покупке ...
      Заранее спасибо !!

  • Сообщения

    • Лишний нагрев КРЕНок 
    • Сделал себе 300-вольтовый пробник для светодиодов, преобразователь из Радио №3/1988 г., потом стабилизатор тока, ссылку на который давал Краб. Получилось очень даже не плохо, качает любые линейки.  
    • Походу, "приделать полотно к смычку" (штангенциркуль использовать как гаечный ключ) - как раз и есть "окуенное желание что-то написать на форуме."   Чиста жизненная среднестатистическая  выборка: 8-ми квартирный  дом, 8 семей самого среднего класса (рабочие, служащие (не армия), строитель, воспитатель, педагог, пенсионер....) и возраста (от 0.5, до 85)... у всех есть либо набор ключей, либо пассатижи, либо разводной ключ....., штангенциркуль есть только у меня (и не один, помимо прочего нужного инструментария) . Это я к тому, если у человека нет подходящего ключа, то у него скорее всего (99% )  нет и штангенциркуля. И типа "совет": - Если нет подходящего ключа, то воспользуйтесь штангенциркулем!! выглядит как: -  Если у Вас  в нужный момент не оказалось туалетной бумаги, то воспользуйтесь стекловатой. С уважением, Сергей
    • Нашел в своих закромах, продаю. Вроде не сильно б/у, лет так несколько назад я его проверял, светили все "пиксели" фото с инета, свои прикреплю чуть позже. Октябрьск , Самарской обл. 2500р.  
    • Зря, муйню надо возвращать обратно.
    • Как каким боком? Да хотя бы "лампочками" поморгать...
  • Покупай!

×
×
  • Create New...