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

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

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

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

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

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

Электроника - это просто Теоретические и практические вопросы для начинающих электронщиков.

 
Опции темы
Непрочитано 02.02.2011, 08:36  
russo_turisto
Прописка
 
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 249
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
russo_turisto на пути к лучшему
По умолчанию Бегущая строка

Помогите поднять, соответственно понять программу для бегущей строки, программа не полная, основной части нету, пытаюсь понять алгоритм работы и сообразить нехватающий.
Первый вопрос для чего нужны эти переменные
int8 litera;
int8 shift;
int8 strobRow;
int8 shiftDirection;
int8 dataRow[8];
int8 row;
и что делает эта строка
shift_right(dataRow,8,bit_test(literaBig[litera][row],i));

проэктик прикреплен

Для начала хочу включить все сегменты на матрицах, выключить и запустить бегущий один сегмент.
#include ‹16F870.h›
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=20000000)

#include ‹74595.c›
#include ‹row8.c›

int8 litera;
int8 shift;
int8 strobRow;
int8 shiftDirection;
int8 dataRow[8];
int8 row;
//*************************
#int_rtcc
void Interrupt_RTCC()
{
int8 i;
int8 k;
output_b(0xff);
for(litera=0;litera‹=7;litera++){
for(i=0;i‹=7;i++)
shift_right(dataRow,8,bit_test(literaBig[litera][row],i));
}
for(i=0;i‹=shift;i++)
rotate_right(dataRow,;
output_b(0xff);
write_expanded_outputs(dataRow);
rotate_left(&strobRow,1);
output_b(strobRow);
row++;
if(row›7) row=0;
set_rtcc(61);
}
//*************************
void main()
{
int1 flagLiteraPrinted;
setup_counters(rtcc_internal,rtcc_div_64|rtcc_8_bi t);
enable_interrupts(int_rtcc);
enable_interrupts(global);

Main_Loop:
litera=0;
shift=64;
strobRow=0b01111111;

while(true){
shift--;
if(shift==0)
shift=64;
delay_ms(50);
}
}
Миниатюры:
Нажмите на изображение для увеличения
Название: matrix.GIF
Просмотров: 360
Размер:	75.3 Кб
ID:	17896  
Вложения:
Тип файла: rar led_matrix.rar (98.3 Кб, 132 просмотров)
Реклама:

Последний раз редактировалось russo_turisto; 06.02.2011 в 21:44. Причина: нет ответов
russo_turisto вне форума  
Сказали "Спасибо" russo_turisto
warel (27.06.2019)
Непрочитано 06.02.2011, 16:52  
alxchep
Почётный гражданин KAZUS.RU
 
Аватар для alxchep
 
Регистрация: 29.01.2007
Адрес: Пермский край
Сообщений: 1,417
Сказал спасибо: 346
Сказали Спасибо 988 раз(а) в 420 сообщении(ях)
alxchep на пути к лучшему
По умолчанию Re: Бегущая строка

Не густо советов...
Может приложить схемку или назначение портов? Попробуйте дать ссылку на эту ветку в раздел "Микропроцессоры, АЦП...".
alxchep вне форума  
Сказали "Спасибо" alxchep
warel (27.06.2019)
Непрочитано 06.02.2011, 19:23  
russo_turisto
Прописка
 
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 249
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
russo_turisto на пути к лучшему
По умолчанию Re: Бегущая строка

Подождем еще, не только мне нужна бегущая строка, хочу термометр сделать на матрицах.
russo_turisto вне форума  
Сказали "Спасибо" russo_turisto
warel (27.06.2019)
Непрочитано 06.02.2011, 20:18  
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,593
Сказал спасибо: 0
Сказали Спасибо 4,399 раз(а) в 2,174 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Бегущая строка

russo_turisto,
на что смотреть, на что отвечать - дебилошпротеусом не пользуюсь, а пдф схемы нет... так что...
через виртуальный принтер сделай пдф-ку и тогда посмотрим
jump вне форума  
Эти 2 пользователя(ей) сказали Спасибо jump за это сообщение:
leoblp (07.02.2011), warel (27.06.2019)
Непрочитано 06.02.2011, 21:41  
russo_turisto
Прописка
 
Регистрация: 16.01.2007
Адрес: Astana KZ
Сообщений: 249
Сказал спасибо: 48
Сказали Спасибо 38 раз(а) в 32 сообщении(ях)
russo_turisto на пути к лучшему
По умолчанию Re: Бегущая строка

Поместил в первом посте упрощеную схему для одной матрицы.
russo_turisto вне форума  
Сказали "Спасибо" russo_turisto
warel (27.06.2019)
Непрочитано 06.02.2011, 23:04  
jump
Почётный гражданин KAZUS.RU
 
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,593
Сказал спасибо: 0
Сказали Спасибо 4,399 раз(а) в 2,174 сообщении(ях)
jump на пути к лучшему
По умолчанию Re: Бегущая строка

упрощенно, но жить можно
принцип таков:
1. в регистры (по числу матриц) загоняешь столбцы данных
2. включаешь строку (на рисунке отсутствуют верхние (иль нижние ключи, зависит от матриц)) ключом
3. выдерживаешь Nms
4. гасишь строку ключом
5. повторяешь с п.1
6. по окончании 8ми проходов сдвигаешь влево/вправо на один шаг буфер строки и добавляешь один столбец из знакогенератора
это основной цикл - принцип похож на развертку телевизора
пока идет выполнение п.3 по таймеру - готовишь следующий пакет для индикации из буфера строки.
аглицкие букавы сами за себя грят
jump вне форума  
Эти 2 пользователя(ей) сказали Спасибо jump за это сообщение:
russo_turisto (07.02.2011), warel (27.06.2019)
Непрочитано 07.02.2011, 00:20  
vadd
Заблокирован
 
Регистрация: 11.06.2004
Сообщений: 477
Сказал спасибо: 15
Сказали Спасибо 124 раз(а) в 54 сообщении(ях)
vadd на пути к лучшему
По умолчанию Re: Бегущая строка

Сообщение от jump Посмотреть сообщение
1. в регистры (по числу матриц) загоняешь столбцы данных
угу...
правильный подход.

хорошо когда столбцов 8
а если их 256?
vadd вне форума  
Сказали "Спасибо" vadd
warel (27.06.2019)
Непрочитано 07.02.2011, 03:24  
TOPOV
Прохожий
 
Регистрация: 19.01.2007
Сообщений: 2
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
TOPOV на пути к лучшему
По умолчанию Re: Бегущая строка

Скажите пожалуйста. Как упралять по строкам?

Последний раз редактировалось TOPOV; 07.02.2011 в 10:00.
TOPOV вне форума  
Сказали "Спасибо" TOPOV
warel (27.06.2019)
Непрочитано 07.02.2011, 04:33  
vadd
Заблокирован
 
Регистрация: 11.06.2004
Сообщений: 477
Сказал спасибо: 15
Сказали Спасибо 124 раз(а) в 54 сообщении(ях)
vadd на пути к лучшему
По умолчанию Re: Бегущая строка

ну если скважность 1/250 устроит - пожалуйста )))
vadd вне форума  
Сказали "Спасибо" vadd
warel (27.06.2019)
Непрочитано 07.02.2011, 05:43  
Gurianov_A
Частый гость
 
Регистрация: 14.04.2007
Сообщений: 24
Сказал спасибо: 3
Сказали Спасибо 7 раз(а) в 3 сообщении(ях)
Gurianov_A на пути к лучшему
По умолчанию Re: Бегущая строка

Сообщение от vadd Посмотреть сообщение
ну если скважность 1/250 устроит - пожалуйста )))
Ответьте для себя на вопрос - сколько в "бегущей строке" строк (правильно 8 ) вот и скважность будет равна 1/8, в независимости от количества столбцов.
Для каждого из столбцов есть свой сдвиговый регистр, сначала в регистры записываем значения для первой строки, включаем первую строку, ждем, выключаем первую строку, записываем для второй строки, включаем, ждем...
Откуда взялась скважность 1\250....
Gurianov_A вне форума  
Эти 2 пользователя(ей) сказали Спасибо Gurianov_A за это сообщение:
leoblp (07.02.2011), warel (27.06.2019)
 

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

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

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

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


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


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