Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Бегущая строка на ATmega8 - простая схема
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2, 3
SasaVitebsk
Цитата(rakplus @ Jul 9 2007, 13:51) *
Спасибо за помощь! В результате изысканий выявлено, что оптимальное напряжение питания на микросхемы, при котором глюки не выявляются - 4.5 В. и ниже. В данном случае было 4,6 В при включении (холодная м/с ЦП) и 4.7 после прогрева (глюки возрастали). Включение в разрыв питания табло диода привела к нужному результату - стабильная правильная работа. smile.gif


Это не помощь.
Вы не устранили проблему, а решили её неверным путём. Хотя и возможным.

Понизив напряжение питания вы существенно снизили ток светодиодов, поэтому микрухи перестали перегреваться. Как результат у вас снизилась яркость свечения. Не надо думать, что яркость свечения снизилась пропорционально снижению питания. Оценить за несколько сот км я не могу. Но ориентировочно снижение уровня тока можно проверить по тем же моим расчётам.

Итак если принять те значения что я писал, то при U=5V у нас получалось 40ма.
Теперь будет I=(4.6-3)/51 = 31ма. То есть ток уменьшился на 22.5%. Если падение на светодиодах больше, то возможно вы снизили ток раза в 2. Всё это можно более точно оценить осциллографом.

Я думаю у вас действительно стояли какие-то специализированные микросхемы.
muravei
Цитата(SasaVitebsk @ Jul 9 2007, 21:57) *
Это не помощь.
Вы не устранили проблему, а решили её неверным путём. Хотя и возможным.

Мне пришла волюнтористическая идея как исправить неисправность smile.gif . Надо поверх одного регистра припаять второй, параллельно , думать лень, но помоему прокатит.
An@BoLiK
Есть бегущая строка, собрана на AVR и 595 регистрах. ПО написано без применения двоной буферизации. Может кто-нибудь объяснить как ее правильно реализовать??? и откуда берется эффект наклона букв и эффект "двойной буквы" т.е в два раза толще.
SasaVitebsk
Цитата(An@BoLiK @ Jul 10 2007, 21:14) *
Есть бегущая строка, собрана на AVR и 595 регистрах. ПО написано без применения двоной буферизации. Может кто-нибудь объяснить как ее правильно реализовать??? и откуда берется эффект наклона букв и эффект "двойной буквы" т.е в два раза толще.


Тут была темка где-то поищи. Там CD_Eater мне разжёвывал что к чему. Тогда я упирался, но решил проверить на всякий случай в своём проекте. Благо работы было на пару часов. Эффект ошеломляющий. Картинка стала совершенно другая (при выводе текста). При выводе графики и анимации - ничего не изменилось. Итак всё было прекрасно.

Смысл вот в чём. Бегущий текст должен выводится не более одного кадра. Иначе происходит размывание/дёргание. Причём похоже оно в мозгах. Потому как вывод движущейся произвольной картинки даже с 6-8 кадров на картинку выглядит отлично и перемещается вполне плавно. Например бежит кот или летит бабочка. Космонавта я где-то содрал. Но текст должен выводится не более одного кадра. Таким образом движение определяется кадровой развёрткой.

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

В некоторых строках экранах установленных у нас я наблюдаю также мусор и прочие хомуты. Это устраняется также как и с любым другим выводом. Картинка подготавливается и переключается разом в момент начала либо конца кадра.

Если всё нормально, то должно казаться что текст неподвижный и едет на колёсиках. smile.gif Забавно, что при сдвиге не на 1, а на 2-3-4-5-6 пикселей - плавность хода практически не ухудшается.

Есть тут специалисты. Один только EXeGLuMATOR чего стоит. smile.gif Посмотри вот это http://electronix.ru/forum/index.php?showtopic=29499
An@BoLiK
smile.gif Все сделано, работает, как на колесиках smile.gif мягко так самому нравиться, НО минимальная скорость движения ограничена кадровой. Лично мне нормально когда кадровая 50-60 Гц мерцания уже не видно и скорость движения текста читабельная, НО я точно знаю что лицо которое заказало мне этот проект может придолбаться почему минимальная скорость ограничена и что он видел как бежит гдето медленней, поэтому я тут и пишу думал ктото както решил эту проблемку.
An@BoLiK
smile.gif Все сделано, работает, как на колесиках smile.gif мягко так самому нравиться, НО минимальная скорость движения ограничена кадровой. Лично мне нормально когда кадровая 50-60 Гц мерцания уже не видно и скорость движения текста читабельная, НО я точно знаю что лицо которое заказало мне этот проект может придолбаться почему минимальная скорость ограничена и что он видел как бежит гдето медленней, поэтому я тут и пишу думал ктото както решил эту проблемку.
SasaVitebsk
У меня частота кадров сейчас 60Гц. Было 75. Принципиально я могу замедлять и ускорять текст. Замедлять путём кратности (движение один раз за N кадров) и ускорять путём смещение на N пикселей за раз. С точки зрения изображения при замедлении выглядит не очень красиво. Но принципиально - живёт.

Теперь вообще. При размерах 1.2 метра движение при частоте кадров 60Гц мне кажется оптимальным. Медленнее не надо. Можно даже ускорить до 75Гц. При больших размерах наверное можно ещё подогнать. Если делать медленнее, то уснёшь читая. Правда у меня различные шрифты от 6х8 до 16х17. Поэтому на шрифте 16х17 движение выглядит как более медленное.

Когда отлаживал, то я всё это просматривал с близкого расстояния и, в связи с этим не видел общей картины. Попробуй просмотреть картинку с расстояния 20 метров. И пустить текст по-разному.
radan
Собрал строку на самых дешёвых светляках, обкатал программу. Всё как на колёсиках, даже ввёл эффект, основанный на "вредном наклоне" шрифта. Теперь текст колеблется, как полотнище знамени.
Надо переходить на яркие светодиоды, а информации то и нет. Светодиодов куча, выбор большой и цена разная. Для наружной рекламы используем 180 градусов 0,6-1,0 кандел. Вечером и в сумерки смотрится очень хорошо, а вот днём явно мало. Вот и вопрос - кто какие применяет, какая яркость и угол обзора нужны для наружного и внутреннего применений. Нужна ли регулировка яркости для разной освещённости?
An@BoLiK
Интересует следущий вопрос:

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

Хочу сделать "двойную строку" 16пикселов в высоту. Т.к. скважность 1/16 не может устраивать, то разделю на 2 какбы отдельные с общими плюсовыми проводами в строках и удвою к-во регистров.
Получается просто 2 строки одна стоит на другой.

Во-первых с увеличением высоты наклон визуально увеличиться?

Во-вторых не получу ли я вместо наклона / /
/ /

наклон / /
/ / ???

Всетаки наверно получу так как получается это просто две строки а значит и наклонные линии будуд одинаковы.. sad.gif

Кто делал строку 16 пикселей в высоту из матриц 8х8??? может надо както подругому? поделитесь опытом плиз smile.gif


//////////////////////////////////////////////////////////
Во-вторых не получу ли я вместо наклона / /
/ /

наклон / /
/ / ???
////////////////////////////////////////////////////////

/ /
/ /

/ /
/ /

имел ввиду это..

sad.gif не получается нарисовать. но я думаю суть понятна, если будет двигаться прямая вертикальная линия, то даже при небольшом наклоне будет разрыв или искривление.
An@BoLiK
Что лучше в бегущей строке статика или динамика?? В статике не пробывал поэтому и спрашиваю.То что придется делать из дискретных светодиодов и больше уйдет регистров и драйверов знаю. А вот с точки зрения управления и всяких нежелательных зрительных эфектов типа ломка, изгибы, подергивание букв. Видел уже не одну строку на сверхярких диодах, и никаких явлений типа наклонных символов нет.
23322
здравствуйте уважаемые. прошу помощи и разъяснить пару весчей.
http://electronix.ru/forum/index.php?showtopic=38021
моя тема. Суть такая. Хочу собрать что то похожее на бегущую строку - плату в которой 400 диодов, но чтоб там ничего не "бегало", а просто при нажатии кнопки на компе (в с++) на плате загорался определённый диод. соединение через сом порт.
остановился на выборе платы под управлением ATmega32
http://www.terraelectronica.ru/catalog_inf...class_19_2_26_1
http://www.ldm-systems.ru/price_konstructors.htm
http://www.ldm-systems.ru/ldm-mp_2.01.htm
сам я программил на дельфи и с++, думаю потребуется Ваши советы по работе с Пони 2000.
с Уважением.
Сергей_НАЛ
Здраствуйте, кто нибудь может объяснить как добиться плавности движения бегущей строки на светодиодах, я тут порыскал и ничего конкретного не нашел!
Кто то говорил о двойной буферизации, я не совсем понял как ее реализовать, я использую один буфер)
Параметры моей строки:
1. Кол - во светодиодов 8х128;
2. Частота 75 Гц (индикация динамическая);
3. Сдвиг стоит сейчас на 25 Гц;
Для бегущей строки задействовано 2 таймера, один для сдвига другой для динамической индикации.
Не могу понять почему сдвиг не плавно происходит, он какой то ступенчатый!
Как я понял т-щ Cd_Eater сведущ в этих делах, вопрос в основном адресован ему))
Александр Куличок
Посмотрите здесь. Там был похожий вопрос. Я уже отвечал на него (пост №11)
Сергей_НАЛ
Спасибо за ссылку, Александр, прочел!
И сделал вывод:Частота сдвига должна быть >= Частоте развертки(кстати я в этих терминах слегка путаюсь, если не сложно скиньте ссылку на какую - либо книженцию, где есть описание сих терминов:"Развертка вертикальная, горизонтальная" и т.д.) => Имея частоту динамической индикации 75 Гц я и текст должен сдвигать с этой частотой, возникает вопрос, что делать если нужна меньшая частота???

А насчет двойной буферизации я все равно не совсем понял!

У меня реализация такова:
1. 4 массива по 8 элементов, каждый элемент по 32 бита, эти массивы "покрывают" как бы всю мою панель, их я и сдвигаю в программе;
2. 4 буферные переменные по 32 бита (это покрытие одной строки) в них я записываю информацию с буферных массивов(одну из восьми строк которую нужно в данный момент времени зажечь);
3. После того как я поджог одну строку я забиваю сдвиговые регистры MBI следующей строкой и жду прерывания от Т1 дабы поджечь следующую строку;
4. Сдвиг происходит от прерывания Т2 , я сдвигаю буферные массивы на одну позицию и снова идет цикл динамической индикации....

Блин, может дело в синхронизации я тупо не отключаю какой то таймер в какой то нужный момент времени??
Например: Т1, когда сдвигаю в Т2 буферные массивы, хотя сдвиг буферных массивов на одну позицию занимает 240 мкс.

Т1 -> 10 000 Гц;
Т2 -> 1 000 Гц;
Строка поджигается через каждые 1.6 мс;
ae_
Цитата(Сергей_НАЛ @ Oct 14 2010, 17:47) *
...
Т1 -> 10 000 Гц;
Т2 -> 1 000 Гц;
Строка поджигается через каждые 1.6 мс;

Два таймера не всегда лучше, а может даже и хуже, если возникает прерывание на отрисовку следующей строки в то время, когда происходит сдвиг содержимого видеобуфера.
Оставьте один основной таймер, по которому происходит развёртка, по нему будет отрисовываться одна за одной линии в вашей строке, когда будет отрисована последняя линия, т.е. следующая линия начнёт новый кадр, как в развёртке на ТВ или мониторе (кадровая синхронизация), вот тогда нужно будет сдвинуть видеобуфер на новую позицию и следующий кадр будет отрисован без дерганий.
Если сдвигать нужно медленне, чем 1 раз за "кадр", то сдвигайте видеобуфер 1 раз за 2, 3, 4, ... "кадра".
Сергей_НАЛ
Я как раз думал об этом!))

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

Просто у меня В ТЗ изначально нужно было менять скорость сдвига строки и я почему то сразу решил делать это таймером)

Попробую этот путь...как реализую, сообщу))
Спасибо)
Сергей_НАЛ
Да, эта стратегия мне помогла, заметно плавнее стало изображение!!!
Еще раз спасибо)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.