Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
27.02.2013, 23:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Бегущая строка
Сообщение от miwutka
|
сорри, чтото не так опять наверно не так делаю поменял как надо, галстук стал уголком вниз. )) А до этого был вверх...
|
Проверьте верхний левый, а потом нижний правый углы
|
|
|
|
27.02.2013, 23:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Бегущая строка
ща проверю.
|
|
|
|
27.02.2013, 23:09
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Бегущая строка
При таком битмапе светиться правый нижний пиксель
PHP код:
|
unsigned char bmp[]=
{1,0,0,0, 0,0,0,0,
0,0,0,0, 0,0,0,0
};
|
При таком - левый верхний
PHP код:
|
unsigned char bmp[]=
{0,0,0,0, 0,0,0,0,
0,0,0,0, 0,0,0,0x80
};
|
PHP код:
|
void OutLine(void)
{
// начнем задвигать диоды текущей строки;
for(i=0; i ‹ 16; i++ )
{
if((bmp[ i ] & line )!=0)
{
DATA = 1;
}
else
{
DATA = 0;
};
CLOCK = 1; // задвигаем бит
CLOCK = 0;
};
// столбцы задвинули
// тепреь задвинем line - она ж строка, которая будет светиться;
tmp=1;
for(i=0;i‹8;i++)
{
if((line&tmp)!=0)
{
DATA = 1;
}
else
{
DATA = 0;
};
CLOCK = 1; // задвигаем бит
CLOCK = 0;
tmp ‹‹= 1;
};
// все задвинули теперь надо это отобразить
OE=1; // выключение матрицы, что б не было паразитного свечения диодов при переключении строк
LATCH = 1; // Защелка в регистрах
LATCH = 0;
OE = 0; // включаем матрицу.
// == приготовимся к следующей строке
line ‹‹= 1;
if( line == 0 ) line = 1;
// вот пожалуй и все
}
|
|
|
|
|
27.02.2013, 23:15
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Бегущая строка
блин просто матрицу перевернул на 180 градусов и все норм ))) Углф все сходяться Ток не движеться картинка если tpm менял. Ща попробую додуматься както..... Надо наверно еще один счетчик сделать...? Если картинка стоит то всеравно сколько раз изображение отображаеться. А если двигаться будет то надо же наверно отобразить рисунок минимум 25 раз на одном месте, потом сместить на 1 столбец и опять 25 раз отобразить его там и т.д....???
|
|
|
|
27.02.2013, 23:27
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Бегущая строка
Вы тут исчо ?
|
|
|
|
27.02.2013, 23:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Бегущая строка
да, конечно
|
|
|
|
27.02.2013, 23:33
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
|
Re: Бегущая строка
Сообщение от miwutka
|
отобразить рисунок минимум 25 раз на одном месте, потом сместить на 1 столбец и опять 25 раз отобразить его там и т.д....???
|
Вот, снова возникает вопрос о том, нельзя ли как-то использовать регистры сдвига для анимации?...
__________________
There's always more than one way to skin a cat.
|
|
|
|
27.02.2013, 23:34
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Бегущая строка
так глянул Вашу схему - Вот так и с китайскими матрицами разбираюсь.
Значит так - TMP возвращаем как было,
А первый цикл меняем на
for( i = 15; i ›= 0 ; i-- )
Так как второй регистр стоит на первой матрице, а третий на второй.
|
|
|
|
27.02.2013, 23:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Бегущая строка
Анимация делается в зависимости от длины строки. Поэтому скорсть вещь
переменная;
Щас мы подвигаем что нить быстро;
|
|
|
|
27.02.2013, 23:50
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Бегущая строка
Для начала добавим
short speeid = 100 ; // 100 мс, если таймер тикает 1 мс
volatile unsigned char timeout = 0;
unsigned char column=1;
unsigned char PosX=15;
char flag = 1;
а таймере
сделаем так
interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{
// Place your code here
OutLine();
if( timуout) timeout--;
}
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:03.
|
|