Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 25.02.2013, 02:44  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Бегущая строка

Сообщение от miwutka Посмотреть сообщение
шишек делать буду оч много.... а это будет вас нервировать )))
"Нервирует" вовсе не это, а кульбиты, вроде тех, что ты с JhonLaboratory напару тут устраивал.

Сообщение от miwutka Посмотреть сообщение
Как его объявить правильно чтобы чтобы обращаться к биту элемента массива?
Можешь на досуге почитать про битовые поля, побитовые логические операции и операции сдвига (не переусердствуй! ). Возможны разные способы и пока нет аргументов, которые бы перевесили в сторону какого-то одного - подойдем поближе, будет видно.
Реклама:
__________________
There's always more than one way to skin a cat.

Последний раз редактировалось tempora; 25.02.2013 в 02:47.
tempora вне форума  
Непрочитано 25.02.2013, 02:48  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Бегущая строка

Сообщение от miwutka Посмотреть сообщение
for (stolbec=0;stolbec‹=15;stolbec++)
Вот уже первое отклонение от плана. Обещали скважность 8...
Сообщение от miwutka Посмотреть сообщение
DATA_STROKA=Codepage[36][stolbec].0;// подскажите как у переменной которую взял я из массива взять значение нужного бита и назначить переменной?
С какой целью, если не секрет?
Вы ж не собираетесь двигать весь знакогенератор, надеюсь?
Извлекайте бит из DATA_STROKA чем-нибудь типа
PORTD.0 = (DATA_STROKA & 1);
DATA_STROKA = (DATA_STROKA››1);
Это будет быстрей, чем менять на каждый бит маску.

Upd.
Кстати, DATA_STROKA можно объявить в регистре, это ещё несколько ускорит работу.

Последний раз редактировалось omercury; 25.02.2013 в 02:52.
omercury вне форума  
Непрочитано 25.02.2013, 02:56  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию Re: Бегущая строка

Сообщение от omercury Посмотреть сообщение
Вы ж не собираетесь двигать весь знакогенератор, надеюсь?
Думаю, ему Ваш вопрос пока непонятен. Пусть почитает, поробует, вникнет. Кроме того, поскольку знакогенератор справа от присвоения, это к сдвигу не привело бы, может он побитный цикл развернет.
__________________
There's always more than one way to skin a cat.
tempora вне форума  
Непрочитано 25.02.2013, 10:26  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Бегущая строка

Поделюсь некоторым опытом.
Замечание - светодиодные матрицы никто сам не собирает, а покупают китайские. У китайцев их на любой вкус и цвет и цену.
Пусть матрица 16х8;

И так - с чего начинать?
Создаем битмап.

Пусть каждый байт - это столбец;

Хотя организация этого битмапа силно зависи от размеров строки, типа и организации матриции светодиодов;

PHP код:
unsigned char  bmp[]=
                                {
1,0,0,00,0,0,0,
                                
0,0,0,00,0,0,0
                                
}; 
Затем необходимо сделать подпрограмму, вывода битмапа на матрицу.
Как только на матрице засветится левый верхний диод - начало, положено.

Быренько меняем

PHP код:
unsigned char  bmp[]=
                                {
0,0,0,00,0,0,0,
                                
0,0,0,00,0,0,0x80
                                
}; 
И если видим что светится, только правый нижний диод, то мы почти уже у цели.

Быренько меняем

PHP код:
unsigned char  bmp[]=
                                {
1,3,7,15,  31,63,127,255,
                                 
255,127,63,31,  15,7,3,1
                                
}; 
И ... если видим пионерский галстук - забываем про матрицу и вывод на нее и начнем задумываться как и что теперь рисовать.
Boba_spb вне форума  
Непрочитано 25.02.2013, 11:04  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Бегущая строка

Попробуем это вывести.
Матрица динамическая.
Строк 8.
Три регистра сдвига. Один выбор строки и два - выбор диодов строки (столбцов).
Пущай подпрограмму вывода строки вызывают из таймера раз в милисекунду. (Если будет мерцать, то частоту повысить);

И так начали;
PHP код:
unsigned char line // первая строка 
void OutLine()
{
  
// начнем задвигать диоды текущей строки;
   
for( int i 0‹ 16i++ )
    {
       if( (
bmp] & line ) ! = 
            {
             
DATA 1;
            }
       else
             {
             
DATA 0;
             }
              
CLOCK 1;   // задвигаем бит
              
CLOCK 0;
     }
    
//  столбцы задвинули
    // тепреь задвинем line - она ж строка, которая будет светиться;
  
unsigned char tmp 1;
    for(
int i=0;i8;i++)
    {
       if( (
line] & tmp ) ! = 
            {
             
DATA 1;
            }
       else
             {
             
DATA 0;
             }
              
CLOCK 1;   // задвигаем бит
              
CLOCK 0;
              
tmp ‹‹= 1;   
     }  
     
// все задвинули теперь надо это отобразить

             
OE=1;  // выключение матрицы, что б не было паразитного свечения диодов при переключении строк
             
LATCH 1;  // Защелка в регистрах
             
LATCH 0;
             
OE 0// включаем матрицу.
     // == приготовимся к следующей строке
        
line ‹‹= 1;
        if( 
line == line 1;               
     
// вот пожалуй и все 

Прошу скорострельность и оптимизацию, пока не обсуждать ибо преследую цель дать алгоритм.

Схему не смотрел, но надеюсь, что DATA с МК идет на регистр выбора строки, затем на регистр старших диодов и на регистр младших диодов.
Boba_spb вне форума  
Непрочитано 25.02.2013, 11:32  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Бегущая строка

MAX7219
http://datasheets.maximintegrated.co...19-MAX7221.pdf
Недорогая.
http://www.ebay.com/itm/10PCS-MAXIM-...item1e7059429f
Легко каскадируется.
Прозрачна и понятна в алгоритмике.
Из минусов - крупногабаритные матрицы придется ключевать. Пожалуй, от этого ни в каких вариантах не уйти.
Но такие размеры вполне без ключей:
http://www.ebay.com/itm/MAX7219-Dot-...item5d381a5aa6
__________________
С уважением,
Vic / ut1wpr

Последний раз редактировалось ut1wpr; 25.02.2013 в 11:49.
ut1wpr вне форума  
Непрочитано 25.02.2013, 11:41  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Бегущая строка

А типа MBI5026 - чем плохи ? Да и цена вроде на порядок ниже
Boba_spb вне форума  
Непрочитано 25.02.2013, 12:05  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Бегущая строка

Сообщение от Boba_spb Посмотреть сообщение
А типа MBI5026 - чем плохи ? Да и цена вроде на порядок ниже
На порядок? Т.е. при цене в 50 центов/корпус для МАХ7219, MBI имеют 5 центов? Наверное, я не там смотрю.
Для опытного программера не составит проблем наваять под то или под другое. Или вообще на внешних сдвиговых. Разница в небольшом. 7912 под динамическую индикацию, 5026 - статика. Функционал у 7912 гораздо выше. Можно применять разные типы декодирования, аппаратно гасить ненужные знакоместа, кроме внешнего резистора яркостью можно управлять программно.
http://mcucpu.ru/index.php/pdevices/...sii/60-max7219
Я с ними плотно поработал, пощупал за ножки и если где-то и есть что-то дешевле, меня никто не разубедит в их "вкусности".
__________________
С уважением,
Vic / ut1wpr

Последний раз редактировалось ut1wpr; 25.02.2013 в 12:24.
ut1wpr вне форума  
Непрочитано 25.02.2013, 16:31  
Boba_spb
Почётный гражданин KAZUS.RU
 
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
Boba_spb на пути к лучшему
По умолчанию Re: Бегущая строка

А где MAX7219 за 50 центов дают?

Я посмотрю как эти MAX скаскадировать, для простой строки из 16 матриц 16х8.

И зачем токо MacroBlock стоко мелкосхем для управления светодиодами наклепал, когда динамическое управление семисегментниками справляется со всем?
Boba_spb вне форума  
Непрочитано 25.02.2013, 16:42  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Бегущая строка

Сообщение от Boba_spb Посмотреть сообщение
А где MAX7219 за 50 центов дают?
Я вот тут покупал. По 50 центов. За штуку. В лоте 10 штук. Я же ссылку давал.
http://www.ebay.com/itm/10PCS-MAXIM-...item1e7059429f
Цитата:
Я посмотрю как эти MAX скаскадировать, для простой строки из 16 матриц 16х8.
А какие проблемы? Правда, один чип на одну матрицу 8х8. На 16х8 понадобится два камушка. Целый бакс!
Цитата:
И зачем токо MacroBlock стоко мелкосхем для управления светодиодами наклепал, когда динамическое управление семисегментниками справляется со всем?
ХЗ...
Я подобные применял, когда на морде было много индикаторных СД, а выводов не хватало. Ну, это кто как и для чего.. Как говорят, соль и перец - по вкусу.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Светодиодное табло (бегущая строка) padre62 Микроконтроллеры, АЦП, память и т.д 24 31.08.2012 13:49
Бегущая строка barbuss Микроконтроллеры, АЦП, память и т.д 26 26.12.2011 20:41
Бегущая строка russo_turisto Электроника - это просто 23 13.02.2011 19:18
Бегущая строка- казалось просто... Muzicant Микроконтроллеры, АЦП, память и т.д 15 19.09.2006 07:59
[Решено] бегущая строка Вадим Источники питания и свет 3 04.03.2005 20:00


Часовой пояс GMT +4, время: 09:49.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot