Перейти к содержанию

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


Рекомендуемые сообщения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Изменено пользователем artos5

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

Сравнительное тестирование аккумуляторов EVE Energy и Samsung типоразмера 18650

Инженеры КОМПЭЛ провели сравнительное тестирование аккумуляторов EVE и Samsung популярного для бытовых и индустриальных применений типоразмера 18650. 

Для теста были выбраны аккумуляторы литий-никельмарганцевой системы: по два образца одного наименования каждого производителя – и протестированы на двух значениях тока разряда: 0,5 А и 2,5 А. Испытания проводились в нормальных условиях на электронной нагрузке EBD-USB от ZKEtech, а зарядка осуществлялась от лабораторного источника питания в режиме CC+CV в соответствии с рекомендациями в даташите на определенную модель. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

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 :)

Изменено пользователем artos5

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Привет, artos5.

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

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

Изменено пользователем Геннадий
Ссылка на комментарий
Поделиться на другие сайты

Литиевые батарейки и аккумуляторы от мирового лидера  EVE в Компэл

Компания Компэл, официальный дистрибьютор EVE Energy, бренда №1 по производству химических источников тока (ХИТ) в мире, предлагает продукцию EVE как со склада, так и под заказ. Компания EVE широко известна в странах Европы, Америки и Юго-Восточной Азии уже более 20 лет. Недавно EVE была объявлена поставщиком новых аккумуляторных элементов круглого формата для электрических моделей «нового класса» компании BMW.

Продукция EVE предназначена для самого широкого спектра применений – от бытового до промышленного. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

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

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

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

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

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

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

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

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

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

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

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

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

Например, есть знакогенератор 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раз (по кол-ву столбцов индикатора).

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

Изменено пользователем Геннадий
Ссылка на комментарий
Поделиться на другие сайты

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

Изменено пользователем artos5

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Изменено пользователем artos5

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

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

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Изменено пользователем Геннадий
Ссылка на комментарий
Поделиться на другие сайты

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

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

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

Что может быть лучше в радиоэлектронике, чем программирование микроконтроллеров ?

Ссылка на комментарий
Поделиться на другие сайты

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

Изменено пользователем Геннадий
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...