реклама на сайте
подробности

 
 
8 страниц V  « < 3 4 5 6 7 > »   
Reply to this topicStart new topic
> Бегущая строка на ATmega8 - простая схема, разработал простую БЕГУЩУЮ СТРОКУ на светодиодах - оцените
SasaVitebsk
сообщение Mar 4 2007, 01:18
Сообщение #61


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(=GM= @ Mar 3 2007, 22:27) *
Чёй-то неправильно? 25 мА будет течь в течение 1/8 времени кадра. Если период кадра = 16 мс, то через один пиксел ток в 25 ма течёт 2 мс, а 14 мс тока нет. В среднем получается 3 мА за кадр.


Вполне поддерживаю. И всегда так делилось. А если ещё учесть потери (яркости) на динамику как таковую, то это пропорционально где-то 2ма статического тока.

Именно по этому в характеристиках светодиодов и светодиодных матриц присутствует характеристика "допустимый импульсный ток". Иногда указывается макс. длительность имп. тока или скважность. Обычное соотношение импульсный/статический ток для современных светодиодов составляет 100/20 ма. Я так и выдаю то есть подаю 0.1А при скважности 8.
Go to the top of the page
 
+Quote Post
simsim
сообщение Mar 22 2007, 20:53
Сообщение #62


Участник
*

Группа: Новичок
Сообщений: 45
Регистрация: 30-10-06
Пользователь №: 21 801



недавно попросили написать прогу для строки begstr.narod.ru на PIC-e...пришла мысль- а ведь можно вместо PICa поставить atmega8 и не изобретать схему-новое направление работы...попробовал сделать модель в Протеусе - легко, переписал просто подпрограмму растра т.е. вывода видео-ОЗУ на матрицу и все...кому интересно смотрите здесь...удивительно как этому киевлянину удалось столько эффектов впихнуть...
Go to the top of the page
 
+Quote Post
VXDRV
сообщение Mar 23 2007, 00:35
Сообщение #63


Участник
*

Группа: Свой
Сообщений: 67
Регистрация: 5-02-07
Пользователь №: 25 074



Хе-хе, а пока денег не заплатишь не посмотришь модель - и фоток готовых вариантов даже нет.
И строка скромненькая 8x16 ... какие там эффекты - часы у всех есть (и даже термометр).
У меня на PIC-е была как раз на PIC16F877 были (8X96 - моно и 16x80 двухцветная) - теоретически можно 32x128 c развёрткой 60 Гц - моно, или 16x128 двухцветная с тем же рефрешем. И это при 5 MIPS. Думаю Mega (пока не изучал её) способна на большее именно в таком устройстве - ну а если она с памятью напрямую работает - то вообще наверное красота будет (почему именно Mega8 можно ведь и Mega16 поставить - не думаю, что строка это устройство требующее экономии на контроллерах). Вот у меня как раз со скоростью проца то и проблемы - побитная перетасовка принятой инфы в ОЗУ для коррекции разводки печатных плат.
А на begstr.narod.ru - легендарная схема какая то... ей богу, так и подмывает свою выложить (и деньги за прошивку с исходниками брать - хе... хе... - шутка) да не наигрался ещё - хочу качественно улучшить параметры и собрать как минимум ещё один девайс - но не скоро ещё. Интресно а вообще другие схемы в сети есть опубликованные - посерьёзнее пусть хоть на ПЛИС? Я максимум три видел вместе с begstr.narod.ru ну и товарища simsim - хотя для себя всё уже решил.
Мне когда её (распечатанную схему c begstr.narod.ru) как исходную принесли - сразу скучно стало... в целом идеи верные хотя в некоторых местах я сомневаюсь в полной работоспособности и правильности некоторых схемных решений - например сигнал DATA проходящий через все регистры при одновременном CLK (такая штука не прокатила у меня через четыре корпуса MBI5026 и длине провода 50см - победил еле-еле установкой КР1533АП6 на CLK MBI) и транзистор нагруженный на 2 кОм, тот что для инвертирования DATA - сомнительное решение. А ещё +8...15В на выходы регистров через светодиоды. А ещё норма на выход такой серии что в схеме (КР1533ИР24) - 24 мА на выход кажется - в схеме явный перегруз.

Кто продвинулся в железе? - комментарии в студию - на чём сделана и что умеет.
Кто собрал с begstr.narod.ru? - а то все хотят собрать, а чем заканчивается не слышно.
Go to the top of the page
 
+Quote Post
radan
сообщение Mar 23 2007, 10:04
Сообщение #64


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 3-11-06
Пользователь №: 21 955



У меня строка собрана на м/с ATMEGA8, К155ИР8 и ULN2803, ключи строк на КТ973. 8х48 законченная конструкция, но реально хоть 8х128. Проблем никаких не заметил. Пока программно можно регулировать скорость бега, инверсию, стоп-кадр. Зашита вся таблица символов ASCI. В планах часы, термометр ну и всяких разных мультиков. ПО написано на BASCOMAVR и VISUAL BASIC.

_bascomavr.3bb.ru_
Go to the top of the page
 
+Quote Post
VXDRV
сообщение Mar 23 2007, 10:40
Сообщение #65


Участник
*

Группа: Свой
Сообщений: 67
Регистрация: 5-02-07
Пользователь №: 25 074



Цитата(radan @ Mar 23 2007, 10:04) *
У меня строка собрана на м/с ATMEGA8, К155ИР8 и ULN2803, ключи строк на КТ973. 8х48 законченная конструкция, но реально хоть 8х128. Проблем никаких не заметил. Пока программно можно регулировать скорость бега, инверсию, стоп-кадр. Зашита вся таблица символов ASCI. В планах часы, термометр ну и всяких разных мультиков. ПО написано на BASCOMAVR и VISUAL BASIC.

_bascomavr.3bb.ru_


Не хочу отговаривать но Visual Basic - тормоз на все сто + почти нулевая поддержка WinAPI. Рекомендую перейти на C++. Сам когда-то им баловался, а как перешёл на Delphi - программирование стало "развлечением". У меня одновременно на экране монитора рисуется и тут же на девайсе - Сперва на VB начал писать, но "сдулся" за неимением нужных мне компонентов, откровенными тормозами даже при компиляции текста в кадры и как мне показалось "ограниченности" в свободе програмирования + таскание с софтом дополнительных библиотек и ActiveX. Особенно разбесило когда моя программа на VB не запустилась на тачке где VB не установлен прямо на защите проекта. Аргументы прошу опустить - каждый делает на чём хочет и может. Можно обменяться софтом с исходниками (типа обмен опытом) - хочу глянуть как на VB работает у вас.
Go to the top of the page
 
+Quote Post
muravei
сообщение Mar 23 2007, 10:52
Сообщение #66


Гуру
******

Группа: Свой
Сообщений: 2 538
Регистрация: 13-08-05
Пользователь №: 7 591



Цитата(VXDRV @ Mar 23 2007, 10:40) *
Не хочу отговаривать но Visual Basic - тормоз на все сто + почти нулевая поддержка WinAPI.

С чего это нулевая? Декларируй и вызывай?
Go to the top of the page
 
+Quote Post
VXDRV
сообщение Mar 23 2007, 11:01
Сообщение #67


Участник
*

Группа: Свой
Сообщений: 67
Регистрация: 5-02-07
Пользователь №: 25 074



Цитата(muravei @ Mar 23 2007, 10:52) *
С чего это нулевая? Декларируй и вызывай?


Так потому и сказал - "почти".
Go to the top of the page
 
+Quote Post
radan
сообщение Mar 23 2007, 15:17
Сообщение #68


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 3-11-06
Пользователь №: 21 955



На Visual basic организована простая программа для засылки через последовательный порт текста в EEprom. А ещё скорость , с которой надо строке бежать и инверсия - есть/нет. Коды символов находятся в тексте программы контроллера как массив. Программа читает последовательность записанных символов из EEprom и подставляет соответствующие им данные массива, затем делает сдвиг ну и т.д.
Т.е. залил текст в строку, отключил от компа и она самостоятельно работает. Ну а если от компа, то можно нагородить хоть мультики. Делал образец, 16х16 управлял компом, отрисовка и на экране, и на реальном устройстве на Visual basic. Я не профессиональный программист, поэтому Бейсик. Для моих поделок в самый раз.
Go to the top of the page
 
+Quote Post
dkostik
сообщение Mar 23 2007, 16:47
Сообщение #69


Участник
*

Группа: Новичок
Сообщений: 39
Регистрация: 12-07-06
Пользователь №: 18 766



Мнение программиста:
-basic - язык домохозяек!
Работа с жнлезом - юзайте ДДК.
Если лень разбиратся то Delphi или C#.
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 23 2007, 19:41
Сообщение #70


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(VXDRV @ Mar 22 2007, 21:35) *
У меня на PIC-е была как раз на PIC16F877 были (8X96 - моно и 16x80 двухцветная) - теоретически можно 32x128 c развёрткой 60 Гц - моно, или 16x128 двухцветная с тем же рефрешем. И это при 5 MIPS. Думаю Mega (пока не изучал её) способна на большее именно в таком устройстве - ну а если она с памятью напрямую работает - то вообще наверное красота будет (почему именно Mega8 можно ведь и Mega16 поставить - не думаю, что строка это устройство требующее экономии на контроллерах). Вот у меня как раз со скоростью проца то и проблемы - побитная перетасовка принятой инфы в ОЗУ для коррекции разводки печатных плат.

Я тут прикинул вгрубе, для матрицы 32x128 на атмеге легко можно достичь выдачи порядка 40 Мбит/с. Т.е. передача 64 байт из внешнего ОЗУ МК в матрицу займёт порядка 15 мкс. При скважности 8 и частоте развёртки 60 Гц это означает, что примерно 0.7 процента времени строка не светится. Отсюда вопрос, несвечение как-то влияет на восприятие и сколько процентов вообще допустимо это несвечение?

Кстати, у вас на пике каков получился порядок побитовой скорости?


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
VXDRV
сообщение Mar 23 2007, 23:03
Сообщение #71


Участник
*

Группа: Свой
Сообщений: 67
Регистрация: 5-02-07
Пользователь №: 25 074



Коротко по организации устройства (16x128 двухцветное):
Состоит допустим из восьми модулей - плат.
Каждый модуль 16x16 точек - 4 двухцветные матрицы 8x8.
На каждую матрицу один драйвер MBI5026 - шестнадцатиканальный драйвер светодиодов со стабилизацией тока (по сути сдвиговый регистр с защёлкой). DATA соединены также последовательно, CLK и LE параллельно, LE - защелка.
На аноды светодиодов в одном устройстве 8 штук КТ825 (были под рукой и неприхотливы в работе оказались) в другом 16 штук КТ973.
Индикация динамическая со скважностью - 8.
Двухстраничный вывод - пока одну рисуем другую показываем.
По таймеру переключается номер строки (столбца) (ключ в анодах светодиодов) для вывода и сразу переписываем из сдвигового регистра MBI5026 в защёлку (до этого сдвиговый регистр в MBI был заполнен необходимой инфой) далее следующий столбик (строчку) в 64 байта (по биту сразу в восемь модулей по одному CLK прямо из ОЗУ через буффер) заталкиваю в MBI на будущее - времени на простой индикаторов во время заполнения нет - решается защёлкой в драйвере.
Заполняются драйверы прямым сканированием адресов уже готового к выводу куска памяти - ничего во время этого не делается кроме инкремента адреса следующего столбца(строки) и сопутствующим "дёрганием" CLK.

Компьютер гонит типа "видео" через RS232 - 2 бита (два цвета) на точку (16*128*2)/8=512 Байт кадр со скоростью 115,2 кбит/c.
МК складывает это дело в один из двух приёмных буферов в ОЗУ.
Пока принимаем этот кадр "перетасовываем" прошлый из второго приёмного буфера в "затенёную" страницу вывода. "Перетасовывание" - процесс перестановки битов для коррекции разводки печатных плат - ведь разводил я как получается удобнее - проще програмно было переставить пикселы - самый насыщенный вычислениями процесс. Когда он заканчивается сразу переключаем страницы вывода.

Как только приняли последний байт (512-ый) - переключаем приёмный буфер и "перемещаем" биты в затенённый буфер вывода. Много времени отнимает обработка прерываний от USART - пока сохранится - восстановится контекст - период прерываний около 90 мкс, а также програмная работа с памятью.

Скорость следования кадров - 17 в секунду точно было.

При "аппаратном" движении текста символы из знакогенератора размещал в приёмных буфферах - алгоритм не менялся - просто переписывал буферы со смещением на один байт (строка 8x96) из одного в другой дополняя "справа" очередным символом.

Когда делал все времена измерял в симуляторе MPLAB, долго считал - сейчас не помню уже какие цифры были. - но MEGA - точно PIC "сделает".

P. S. - много напостил чего-то...

Сообщение отредактировал VXDRV - Mar 23 2007, 23:05
Go to the top of the page
 
+Quote Post
radan
сообщение Mar 24 2007, 00:13
Сообщение #72


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 3-11-06
Пользователь №: 21 955



Цитата(dkostik @ Mar 23 2007, 16:47) *
Мнение программиста:
-basic - язык домохозяек!
Работа с жнлезом - юзайте ДДК.
Если лень разбиратся то Delphi или C#.


Если у меня появится время, возможно, я изучу эти языки. А пока меня устраивает то, что есть. По моему мнению "домохазяйки" неважно какой язык использовать, а важно как им владеть. И если не предполагается внедрять проект в массовое производство, а необходима скорость разработки, а главное возможность начать работать буквально с первого знакомства с программой, лучше и понятней Бейсика пока нет. Кстати, программировать микроконтроллеры я начал буквально с первого дня сборки программатора и установки Баском-авр. На ATMEGA16 я собрал 32 программных ШИМ после месячного занятия с микроконтроллерами - можно посмотреть флэш http://ledeffects.net/pages/?id=9.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Mar 24 2007, 16:10
Сообщение #73


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(radan @ Mar 24 2007, 01:13) *
Если у меня появится время, возможно, я изучу эти языки. А пока меня устраивает то, что есть. По моему мнению "домохазяйки" неважно какой язык использовать, а важно как им владеть. И если не предполагается внедрять проект в массовое производство, а необходима скорость разработки, а главное возможность начать работать буквально с первого знакомства с программой, лучше и понятней Бейсика пока нет. Кстати, программировать микроконтроллеры я начал буквально с первого дня сборки программатора и установки Баском-авр. На ATMEGA16 я собрал 32 программных ШИМ после месячного занятия с микроконтроллерами - можно посмотреть флэш http://ledeffects.net/pages/?id=9.


В плане владения языком - соглашусь с Вами. Во всём остальном Вы неправы. Вы просто не имеете возможности сравнивать. Скажем на изучение дельфи (если вы хорошо владеете бэйсиком) вам понадобится неделя максимум. Возможностей - побольше, ограничений - значительно меньше. Объём готовых объектов очень большой. По скольку проги на IBM для меня как правило вспомогательные, то использовать WinAPI просто нет необходимости. Всё очень просто.

Язык си тоже ничего сложного не представляет. Наоборот - достаточно низкоуровневый, что позволяет его особенно эффективно использовать для МК.

Ну например такая забавная конструкция
Код
symbolx=Fonts[tekfonts][0];
if(Znak>' '){
  Znak-= '!';                                            // вычесть смещение на пробел
  yiz -= Fonts[tekfonts][1]-1;
  if(Fonts[tekfonts][0]<=8){
     addr =    ((uint8_t __flash *)symbol[tekfonts])+(Znak*Fonts[tekfonts][1]);
....
Go to the top of the page
 
+Quote Post
=GM=
сообщение Mar 24 2007, 16:42
Сообщение #74


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Ну например такая забавная конструкция
Код
symbolx=Fonts[tekfonts][0];
if(Znak>' ')
{
  Znak-= '!';                                          // вычесть смещение на пробел
  yiz -= Fonts[tekfonts][1]-1;
  if(Fonts[tekfonts][0]<=8)
  {
   addr=((uint8_t __flash *)symbol[tekfonts])+(Znak*Fonts[tekfonts][1]);
....

Да уж...птичий язык. И что тут забавного? Вы меня извините, но такие примеры сеют только сомнение и смятение в неокрепших умах. Он агитирует именно против применения Си.

1)Фигурные скобки не закрыты

2) Зачем приведен yiz, если он нигде не используется?

3) symbolx и symbol это разные переменные?

Коротко говоря, к такому тексту надо ещё 5 страниц объяснений написать(:-)


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Mar 24 2007, 21:43
Сообщение #75


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(=GM= @ Mar 24 2007, 17:42) *
Да уж...птичий язык. И что тут забавного? Вы меня извините, но такие примеры сеют только сомнение и смятение в неокрепших умах. Он агитирует именно против применения Си.

1)Фигурные скобки не закрыты

2) Зачем приведен yiz, если он нигде не используется?

3) symbolx и symbol это разные переменные?

Коротко говоря, к такому тексту надо ещё 5 страниц объяснений написать(:-)


Да нет же. smile.gif Я привёл не законченный кусочек. Поставил "...." чтобы ясно было. Кусочек привёл из живой программы и его не причёсывал специально. А забавность заключается например в операторе
Код
Znak-= '!';


На Паскале его запросто не реализуешь. Он не позволит, так как чётко контролирует типы. Придётся городить что-то типа
Код
Znak = chr(ord(Znak) - ord('!'));

Таким образом на Си более чётко видна суть операции.

В Си ты свободен. Свободен вносить любые ошибки. smile.gif

Конечно в рамках одного поста сложно показать преимущества языка. Я, например в последнем проекте Очень интенсивно использовал структуры и указатели на структуры. Такого в Васеке просто нет. А у меня на этом вся программа написана. Кстати бегущая строка.

Сделаю сайт. Выложу различные документы и свободные программы. В частности эмулятор. Можно будет посмотреть.
Go to the top of the page
 
+Quote Post

8 страниц V  « < 3 4 5 6 7 > » 
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 07:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.83566 секунд с 7
ELECTRONIX ©2004-2016